» Казахстанский Бухгалтерский форум www.balans.kz

Что нужно сделать в конфигураторе для проведения накладных

 
Показать сообщения:
Начиная со старых .::. Начиная с новых


Автор: Банер
Добавлено: #1  Сб Июн 20, 2009 22:43:52
Заголовок сообщения: Что нужно сделать в конфигураторе для проведения накладных

Что нужно сделать в конфигураторе для проведения накладных при реализации товара или готовой продукции,если их нет на остатках на счетах1320 или1330.Стандартная проедура установки галочки для формирования дохода без себестоимости не подходит.Нужно видеть минусовые остатки на счетах для конроля недооприходованых ТМЦ.


Автор: Kenga
Добавлено: #2  Пт Июн 26, 2009 20:27:56
Заголовок сообщения:

В конфигураторе ничего делать не надо. В документе "Реализация товара" на вкладке "общие" поставьте галочку "не формировать проводки по списанию ТМЦ".


Автор: Cleaner
Добавлено: #3  Пт Июн 26, 2009 23:18:27
Заголовок сообщения:

Kenga говорит:
В документе "Реализация товара" на вкладке "общие" поставьте галочку "не формировать проводки по списанию ТМЦ"

Kenga, этот вариант человек срузу отклонил:
Банер говорит:
Стандартная проедура установки галочки для формирования дохода без себестоимости не подходит.Нужно видеть минусовые остатки на счетах для конроля недооприходованых ТМЦ.

В модуль. Заремарить контроль остатков.



Автор: Банер
Добавлено: #4  Сб Июн 27, 2009 13:32:26
Заголовок сообщения: Првести документ накладная

Подскажите пожалуйста, восстанавливаю реализацию за весь 2009год ,нужно разрешить прогроамме 1с7,7 типовая проводить документ "Накладная на отпуск запасов на сторону" без учета остатков чтобы наглядно увидеть остаки после проведения со знаком "минус" . Эта функция временная для того чтобы восстановить остатки на начало года.Что где и как надо изменить в конфигураторе чтобы добиться желаемого результата.


Автор: Банер
Добавлено: #5  Сб Июн 27, 2009 13:36:33
Заголовок сообщения:

Cleaner говорит:
В документе "Реализация товара" В модуль. Заремарить контроль остатков.
опишите пожалста процедуру .


Автор: Cleaner
Добавлено: #6  Сб Июн 27, 2009 13:41:59
Заголовок сообщения:

Банер, щас придут товарищи в зеленом и дадут степлером по пальцам. И будут правы.

Товарищи в зеленом, перенесите его в Изначальную тему

Добавлено спустя 5 минут 52 секунды:

Банер говорит:
опишите пожалста процедуру

В Конфигураторе ремарим // часть кода, где присходит контроль остатков количества товара
Код:
Если ТаблицаСебестоимости.Количество > ТаблицаСебестоимости.ОстатокКоличество  Тогда
глСообщить(Операция, "Счет " + СокрЛП(глПредставлениеСчетаСтр(глПолучитьСчетТМЦ(Товар)))+ ", место хранения """+СокрЛП(Склад)+""": недостаточно товара """+СокрЛП(Товар)+   ". Не хватает "+СокрЛП(ТаблицаСебестоимости.Количество - ТаблицаСебестоимости.ОстатокКоличество )+". Проводка не записана!", !");                            
КонецЕсли;



Автор: Банер
Добавлено: #7  Сб Июн 27, 2009 13:59:48
Заголовок сообщения:

Цитата:
// #Предопределенные **********************************************************
//
// ОбработкаПроведения()
//
// Параметры:
// Описание:
// Предопределенная процедура проведения документа
//
Процедура ОбработкаПроведения()

// проверка периода бухгалтерских итогов
Если глПределыБухгалтерскихИтогов(, ДатаДок, 1) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

// проверка на заполнение обязательных реквизитов
Если глКлючевыеРеквизитыДокумента(Операция, "Подразделение, Склад, ВидДеятельности, ВидРеализации, Контрагент, Основание, Валюта, Курс") = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");

Если Метаданные.РазделительУчета.Выбран() = 1 Тогда
БухИтоги.ИспользоватьРазделительУчета(Организация);
КонецЕсли;

// выгружаем табличную часть документа в ТЗ и сворачиваем
ТзДокумента = СоздатьОбъект("ТаблицаЗначений");
ТаблицаСебестоимости = СоздатьОбъект("ТаблицаЗначений");

ВыгрузитьТабличнуюЧасть(ТаблицаСебестоимости, "ТМЦ,Количество");

ВыгрузитьТабличнуюЧасть(ТзДокумента, "ТМЦ, Количество, СтавкаНДС, СуммаНДС, СтавкаАкциза, СуммаАкциза, СуммаБезНалогов");
ТзДокумента.Свернуть("ТМЦ, СтавкаНДС, СтавкаАкциза", "Количество, СуммаНДС, СуммаАкциза, СуммаБезНалогов");
ТзДокумента.ВыбратьСтроки();

// создаем список значений для запроса
СписокТМЦ = СоздатьОбъект("СписокЗначений");
ТзДокумента.Выгрузить(СписокТМЦ, , , "ТМЦ");

// Признак списания себестоимости ( = 1 Для ГП,себестоимость которой списывают в конце месяца)
Если НеСписыватьТМЦ = 0 Тогда

// Заполняем вспомогательную таблицу
// для хранения общей суммы себестоимости по товару
ТаблицаСебестоимости.Свернуть("ТМЦ","Количество");

ТаблицаСебестоимости.НоваяКолонка("ОстатокКоличество","Число",15,3);
ТаблицаСебестоимости.НоваяКолонка("ОстатокСумма","Число",15,2);
ТаблицаСебестоимости.НоваяКолонка("СписаноВДокументеКоличество","Число",15,3);
ТаблицаСебестоимости.НоваяКолонка("СписаноВДокументеСумма","Число",15,3);


БухИтоги.ВключатьСубсчета(1);

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Номенклатура, СписокТМЦ, 2);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2);
БухИтоги.ВыполнитьЗапрос(,ТекущийДокумент(),"132,133,135",,,,,);
БухИтоги.ВыбратьСубконто();

ТаблицаСебестоимости.ВыбратьСтроки();
Пока ТаблицаСебестоимости.ПолучитьСтроку() = 1 Цикл
Товар = ТаблицаСебестоимости.ТМЦ;

// Для работ или услуг себестоимость контролировать не нужно
Если ((Товар.ВидНоменклатуры.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Услуга)
или (Товар.ВидНоменклатуры.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Работа)) Тогда

Продолжить;
КонецЕсли;

Если БухИтоги.ПолучитьСубконто(,,Товар) = 1 Тогда
Если БухИтоги.ПолучитьСчет(,глПолучитьСчетТМЦ(Товар)) = 1 Тогда
ТаблицаСебестоимости.ОстатокКоличество = БухИтоги.СКД("К");
ТаблицаСебестоимости.ОстатокСумма = БухИтоги.СКД("С");
Если ТаблицаСебестоимости.Количество > ТаблицаСебестоимости.ОстатокКоличество Тогда

глСообщить(Операция, "Счет " + СокрЛП(глПредставлениеСчетаСтр(глПолучитьСчетТМЦ(Товар)))+
", место хранения """+СокрЛП(Склад)+""": недостаточно товара """+СокрЛП(Товар)+
". Не хватает "+СокрЛП(ТаблицаСебестоимости.Количество - ТаблицаСебестоимости.ОстатокКоличество )+". Проводка не записана!", "!");
КонецЕсли;
Иначе //в карточке товара не верно указан вид номенклатуры
глСообщить(Операция, "Не верно указан вид номенклатуры для товара. Остатки для """ + СокрЛП(Товар )+""" на счете " + СокрЛП(глПредставлениеСчетаСтр(глПолучитьСчетТМЦ(Товар))) + " - отсутствуют. Проводка не записана!", "!");
КонецЕсли;
Иначе //Если БухИтоги.ПолучитьСубконто(,,Товар) = 1 Тогда
// по данному ТМЦ вообще нет остатка
глСообщить(Операция, "Счет " + СокрЛП(глПредставлениеСчетаСтр(глПолучитьСчетТМЦ(Товар)))+
", место хранения """+СокрЛП(Склад)+""": недостаточно товара """+СокрЛП(Товар)+
". Не хватает "+СокрЛП(ТаблицаСебестоимости.Количество)+". Проводка не записана!", "!");
КонецЕсли;
КонецЦикла;
КонецЕсли;//Если НеСписыватьТМЦ = 0 Тогда

// Основной цикл для формирования проводок по строкам документа
// списание себестоимости, отражение дохода от реализации
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
ВидНоменклатурыТМЦ = ТМЦ.ВидНоменклатуры.ТипНоменклатуры;
// Признак списания себестоимости ( = 1 Для ГП,себестоимость которой списывают в конце месяца)
Если НеСписыватьТМЦ = 0 Тогда
// Для работ или услуг себестоимость контролировать не нужно
Если ((ВидНоменклатурыТМЦ = Перечисление.ТипыНоменклатуры.Товар)
или (ВидНоменклатурыТМЦ = Перечисление.ТипыНоменклатуры.Продукция)
или (ВидНоменклатурыТМЦ = Перечисление.ТипыНоменклатуры.Прочие)) Тогда

// Если не указано количество списываемого товара, выдаем сообщение и проводку не формируем.
Если Количество = 0 Тогда
глСообщить(Операция, "Не указано списываемое количество материала """+СокрЛП(ТзДокумента.ТМЦ)+""". Проводка не записана!", "!");
Продолжить;
КонецЕсли;

// Если не указан тип номенклатуры для реализуемого товара, выдаем сообщени и не формируем проводку
Если ПустоеЗначение(ТМЦ.ВидНоменклатуры) = 1 Тогда
глСообщить(Операция, СокрЛП(ТМЦ) + ": вид номенклатуры не выбран. Проводка не записана!", "!");
Продолжить;
КонецЕсли;


КоличествоНаСкладе = 0;
СуммаНаСкладе = 0;
МожноСписатьКоличество = 0;
МожноСписатьСумму = 0;
Стр = "";
Если ТаблицаСебестоимости.НайтиЗначение(ТМЦ,Стр,"ТМЦ") = 1 Тогда
ТаблицаСебестоимости.ПолучитьСтрокуПоНомеру(Стр);
КоличествоНаСкладе = ТаблицаСебестоимости.ОстатокКоличество;
СуммаНаСкладе = ТаблицаСебестоимости.ОстатокСумма;
МожноСписатьКоличество = Макс(0,ТаблицаСебестоимости.ОстатокКоличество - ТаблицаСебестоимости.СписаноВДокументеКоличество);
МожноСписатьСумму = Макс(0,ТаблицаСебестоимости.ОстатокСумма - ТаблицаСебестоимости.СписаноВДокументеСумма);
КонецЕсли;

Если МожноСписатьКоличество = 0 Тогда
Продолжить;
КонецЕсли;

Если (МожноСписатьКоличество < Количество) или (МожноСписатьКоличество = 0) Тогда
Продолжить;
Иначе
Если МожноСписатьКоличество = Количество Тогда
Себестоимость = МожноСписатьСумму; // Оставшаяся после списания предыдущих позиций сумма
Иначе
Себестоимость = Окр(Количество * (СуммаНаСкладе/КоличествоНаСкладе),2);
КонецЕсли;
КонецЕсли;

Если ПустоеЗначение(Стр) = 0 Тогда
// Если строка есть в таблице значений
ТаблицаСебестоимости.СписаноВДокументеКоличество = ТаблицаСебестоимости.СписаноВДокументеКоличество + Количество;
ТаблицаСебестоимости.СписаноВДокументеСумма = ТаблицаСебестоимости.СписаноВДокументеСумма + Себестоимость;
КонецЕсли;

// списываем себестоимость
СчетДебета = ТМЦ.ВидНоменклатуры.СчетСебестоимости;
СчетКредита = глПолучитьСчетТМЦ(ТМЦ);

глПроводка( Операция,
СчетДебета, глСубконто(Подразделение, ВидДеятельности, ),
СчетКредита, глСубконто(Склад, ТМЦ, ),
Количество, Себестоимость, , ,
"Списана себестоимость", "ТВ", Организация );
КонецЕсли;
КонецЕсли; //Если НеСписыватьТМЦ = 0 Тогда

// доход от реализации
СчетДебета = Счет;
СчетКредита = ТМЦ.ВидНоменклатуры.СчетДоходов;
СуммаБезНалоговТг = глПересчет(СуммаБезНалогов, Валюта, Курс, глВалютаБухУчета, 1);

ВариантРеализации = глПолучитьВариантРеализации(ВидРеализации,СтавкаНДС, СтавкаАкциза);

глПроводка( Операция,
СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(Подразделение, ВидДеятельности, ВариантРеализации),
, СуммаБезНалоговТг, СуммаБезНалогов, Валюта,
"Доход от реализации", "ТВ", Организация );
КонецЦикла;

//формирование проводок по налогам
ТзНалоги = СоздатьОбъект("ТаблицаЗначений");

//НДС (по каждому виду НДС формирруется отдельная проводка)
ТзДокумента.Выгрузить(ТзНалоги, , , "СтавкаНДС, СуммаНДС");
ТзНалоги.Свернуть("СтавкаНДС", "СуммаНДС");
ТзНалоги.ВыбратьСтроки();

Пока ТзНалоги.ПолучитьСтроку() = 1 Цикл

Если ТзНалоги.СуммаНДС = 0 Тогда
Продолжить;
КонецЕсли;

СчетДебета = Счет;
СчетКредита = СчетПоКоду("313");
СуммаНДСТг = глПересчет(ТзНалоги.СуммаНДС, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция,
СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(глПолучитьНалогНДС(ТзНалоги.СтавкаНДС, 1, ДатаДок), Перечисление.ВидыПлатежей.НалогВзнос, ),
, СуммаНДСТг, ТзНалоги.СуммаНДС, Валюта,
"НДС: ", "ТВ", Организация, 1);
КонецЦикла;

//Акциз (по каждому виду Акциза формирруется отдельная проводка)
//НДС (по каждому виду НДС формирруется отдельная проводка)
ТзДокумента.Выгрузить(ТзНалоги, , , "СтавкаАкциза, СуммаАкциза");
ТзНалоги.Свернуть("СтавкаАкциза", "СуммаАкциза");
ТзНалоги.ВыбратьСтроки();

Пока ТзНалоги.ПолучитьСтроку() = 1 Цикл
Если ТзНалоги.СуммаАкциза = 0 Тогда
Продолжить;
КонецЕсли;
СчетДебета = Счет;
СчетКредита = СчетПоКоду("314");
СуммаАкцизаТг = глПересчет(ТзНалоги.СуммаАкциза, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция,
СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(глПолучитьНалогАкциз(ТзНалоги.СтавкаАкциза, 1), Перечисление.ВидыПлатежей.НалогВзнос, ),
, СуммаАкцизаТг, ТзНалоги.СуммаАкциза, Валюта,
"Акциз: ", "ТВ", Организация, 1);
КонецЦикла;

// Зачет по аванса полученного
Если (ЗачетАванса = 1) и (СуммаАванса<0>= Дата(2008, 01, 01)) Тогда
СуммаАвансаВВалютеУчета = глРассчитатьСуммуАвансаВВалютеУчета(Контекст,Валюта,СуммаАванса, СчетАванса, "Контрагенты, Основания", Контрагент, Основание,);
Иначе
СуммаАвансаВВалютеУчета = глПересчет(СуммаАванса,Валюта,Курс,глВалютаБухУчета,1);
КонецЕсли;

глПроводка( Операция, СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(Контрагент, Основание, ), ,
СуммаАвансаВВалютеУчета, СуммаАванса, Валюта,
"Зачет аванса", "ТВ", Организация );

// переоценка валюты только в случае закрытия имеющейся Кт задолженности
глКурсоваяРазницаПоОперации(Контекст, Валюта, Курс, СуммаАванса, "Дт", СчетДебета, Контрагент, Основание);
КонецЕсли;

// оборот по реализованным товарам по забалансу
ТзДокумента.ВыбратьСтроки();
Пока ТзДокумента.ПолучитьСтроку() = 1 Цикл
ВидНоменклатурыТМЦ = ТзДокумента.ТМЦ.ВидНоменклатуры.ТипНоменклатуры;
// Признак списания себестоимости ( = 1 Для ГП,себестоимость которой списывают в конце месяца)
Если НеСписыватьТМЦ = 1 Тогда
// Для работ или услуг себестоимость контролировать не нужно
Если ((ВидНоменклатурыТМЦ <> Перечисление.ТипыНоменклатуры.Услуга)
и (ВидНоменклатурыТМЦ <> Перечисление.ТипыНоменклатуры.Работа)) Тогда

глПроводка( Операция,
СчетПоКоду("РТ"), глСубконто(ТзДокумента.ТМЦ, Склад, ТекущийДокумент()),
, ,
ТзДокумента.Количество, , , ,
"Реализация без списания себестоимости", "ТВ", Организация );
КонецЕсли;
КонецЕсли;
// Оборот по реализации
// По забалансовому счету "ОР" проводим сумму оборота по реализации и НДС
ВариантРеализации = глПолучитьВариантРеализации(ВидРеализации, ТзДокумента.СтавкаНДС, ТзДокумента.СтавкаАкциза);
СуммаОборотаТг = глПересчет(ТзДокумента.СуммаБезНалогов, Валюта, Курс, глВалютаБухУчета, 1) +
глПересчет(ТзДокумента.СуммаНДС, Валюта, Курс, глВалютаБухУчета, 1) +
глПересчет(ТзДокумента.СуммаАкциза, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция, СчетПоКоду("ОР"), глСубконто(Контрагент, ТзДокумента.ТМЦ, ВариантРеализации),
, ,
ТзДокумента.Количество, СуммаОборотаТг, , ,
"Оборот по реализации с НДС", "ТВ", Организация );

// Оборот по акцизу
Если ТзДокумента.СуммаАкциза = 0 Тогда
Продолжить;
КонецЕсли;

КоэффициентПересчета = 1;
Если ТзДокумента.ТМЦ.КоэффициентПересчета <> 0 Тогда
КоэффициентПересчета = ТзДокумента.ТМЦ.КоэффициентПересчета;
КонецЕсли;

СуммаАкцизаТг = глПересчет(ТзДокумента.СуммаАкциза, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция, СчетПоКоду("АК"), глСубконто(ТзДокумента.СтавкаАкциза, ТзДокумента.ТМЦ, ), , ,
ТзДокумента.Количество / КоэффициентПересчета, СуммаАкцизаТг, , ,
"Акциз", "ТВ", Организация, 1);


КонецЦикла;

Если глЗаписатьОперацию(Операция, "Реализация товаров", Итог("Сумма"), 0) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

КонецПроцедуры // ОбработкаПроведения()

не нашел куда и что вставлять



Автор: Cleaner
Добавлено: #8  Сб Июн 27, 2009 14:13:13
Заголовок сообщения:

Банер говорит:
не нашел куда и что вставлять

Тьфуй... говорили, возьми ребят из Подмосковья...
Код читать можем?
Банер говорит:
Если ТаблицаСебестоимости.Количество > ТаблицаСебестоимости.ОстатокКоличество Тогда

Начинается отсюда. Вставлять ничего не нужно, а нужно ремарить, т.е. ставить //

Нахрена весь модуль пихать? Еще бы глобальный запихал.



Автор: Банер
Добавлено: #9  Сб Июн 27, 2009 14:30:09
Заголовок сообщения:

КоличествоНаСкладе = //;
СуммаНаСкладе = //;
МожноСписатьКоличество = //;
МожноСписатьСумму = //;
Стр = "";
Если ТаблицаСебестоимости.НайтиЗначение(ТМЦ,Стр,"ТМЦ") = // Тогда
ТаблицаСебестоимости.ПолучитьСтрокуПоНомеру(Стр);
КоличествоНаСкладе = //ТаблицаСебестоимости.ОстатокКоличество;
СуммаНаСкладе = //ТаблицаСебестоимости.ОстатокСумма;
МожноСписатьКоличество = //Макс(0,ТаблицаСебестоимости.ОстатокКоличество - ТаблицаСебестоимости.СписаноВДокументеКоличество);
МожноСписатьСумму =// Макс(0,ТаблицаСебестоимости.ОстатокСумма - ТаблицаСебестоимости.СписаноВДокументеСумма);
КонецЕсли; прмерно так что ли



Автор: Raybek
Добавлено: #10  Сб Июн 27, 2009 14:34:25
Заголовок сообщения:

Нет
// ставится в начале строки, что делает код неактивным (комментарием)

например
//ТаблицаСебестоимости.СписаноВДокументеСумма);

Добавлено спустя 1 минуту 16 секунд:

Найдите и закомментируйте (поставьте в начале // ) строки, указанные выше Cleaner



Автор: Банер
Добавлено: #11  Сб Июн 27, 2009 14:36:07
Заголовок сообщения:

Raybek а фрагмент кода правильный?

Добавлено спустя 4 минуты 33 секунды:

попробовал ремарить на одной строке,программа говорит признак проведения не может быть отключен,существуют проведенные документы,код ошибки,



Автор: Raybek
Добавлено: #12  Сб Июн 27, 2009 14:45:54
Заголовок сообщения:

Код в Сообщении №6 Cleaner, а Вас не то. Найдите до последней буковки, то что указано закомментировать.


Автор: KrEAtive
Добавлено: #13  Сб Июн 27, 2009 16:14:47
Заголовок сообщения:

Raybek говорит:
Код в Сообщении №6

Этого не достаточно. Иначе, проводки по нехватающим на складе товарам будут пропущены.

В общем, Банер, замени свой модуль на этот:

[/quote]// #Предопределенные **********************************************************
//
// ОбработкаПроведения()
//
// Параметры:
// Описание:
// Предопределенная процедура проведения документа
//
Процедура ОбработкаПроведения()

// проверка периода бухгалтерских итогов
Если глПределыБухгалтерскихИтогов(, ДатаДок, 1) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

// проверка на заполнение обязательных реквизитов
Если глКлючевыеРеквизитыДокумента(Операция, "Подразделение, Склад, ВидДеятельности, ВидРеализации, Контрагент, Основание, Валюта, Курс") = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");

Если Метаданные.РазделительУчета.Выбран() = 1 Тогда
БухИтоги.ИспользоватьРазделительУчета(Организация);
КонецЕсли;

// выгружаем табличную часть документа в ТЗ и сворачиваем
ТзДокумента = СоздатьОбъект("ТаблицаЗначений");
ТаблицаСебестоимости = СоздатьОбъект("ТаблицаЗначений");

ВыгрузитьТабличнуюЧасть(ТаблицаСебестоимости, "ТМЦ,Количество");

ВыгрузитьТабличнуюЧасть(ТзДокумента, "ТМЦ, Количество, СтавкаНДС, СуммаНДС, СтавкаАкциза, СуммаАкциза, СуммаБезНалогов");
ТзДокумента.Свернуть("ТМЦ, СтавкаНДС, СтавкаАкциза", "Количество, СуммаНДС, СуммаАкциза, СуммаБезНалогов");
ТзДокумента.ВыбратьСтроки();

// создаем список значений для запроса
СписокТМЦ = СоздатьОбъект("СписокЗначений");
ТзДокумента.Выгрузить(СписокТМЦ, , , "ТМЦ");

// Признак списания себестоимости ( = 1 Для ГП,себестоимость которой списывают в конце месяца)
Если НеСписыватьТМЦ = 0 Тогда

// Заполняем вспомогательную таблицу
// для хранения общей суммы себестоимости по товару
ТаблицаСебестоимости.Свернуть("ТМЦ","Количество");

ТаблицаСебестоимости.НоваяКолонка("ОстатокКоличество","Число",15,3);
ТаблицаСебестоимости.НоваяКолонка("ОстатокСумма","Число",15,2);
ТаблицаСебестоимости.НоваяКолонка("СписаноВДокументеКоличество","Число",15,3);
ТаблицаСебестоимости.НоваяКолонка("СписаноВДокументеСумма","Число",15,3);


БухИтоги.ВключатьСубсчета(1);

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Номенклатура, СписокТМЦ, 2);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2);
БухИтоги.ВыполнитьЗапрос(,ТекущийДокумент(),"132,133,135",,,,,);
БухИтоги.ВыбратьСубконто();

ТаблицаСебестоимости.ВыбратьСтроки();
Пока ТаблицаСебестоимости.ПолучитьСтроку() = 1 Цикл
Товар = ТаблицаСебестоимости.ТМЦ;

// Для работ или услуг себестоимость контролировать не нужно
Если ((Товар.ВидНоменклатуры.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Услуга)
или (Товар.ВидНоменклатуры.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Работа)) Тогда

Продолжить;
КонецЕсли;

Если БухИтоги.ПолучитьСубконто(,,Товар) = 1 Тогда
Если БухИтоги.ПолучитьСчет(,глПолучитьСчетТМЦ(Товар)) = 1 Тогда
ТаблицаСебестоимости.ОстатокКоличество = БухИтоги.СКД("К");
ТаблицаСебестоимости.ОстатокСумма = БухИтоги.СКД("С");
//Если ТаблицаСебестоимости.Количество > ТаблицаСебестоимости.ОстатокКоличество Тогда
//
// глСообщить(Операция, "Счет " + СокрЛП(глПредставлениеСчетаСтр(глПолучитьСчетТМЦ(Товар)))+
// ", место хранения """+СокрЛП(Склад)+""": недостаточно товара """+СокрЛП(Товар)+
// ". Не хватает "+СокрЛП(ТаблицаСебестоимости.Количество - ТаблицаСебестоимости.ОстатокКоличество )+". Проводка не записана!", "!");
//КонецЕсли;
Иначе //в карточке товара не верно указан вид номенклатуры
глСообщить(Операция, "Не верно указан вид номенклатуры для товара. Остатки для """ + СокрЛП(Товар )+""" на счете " + СокрЛП(глПредставлениеСчетаСтр(глПолучитьСчетТМЦ(Товар))) + " - отсутствуют. Проводка не записана!", "!");
КонецЕсли;
Иначе //Если БухИтоги.ПолучитьСубконто(,,Товар) = 1 Тогда
// по данному ТМЦ вообще нет остатка
глСообщить(Операция, "Счет " + СокрЛП(глПредставлениеСчетаСтр(глПолучитьСчетТМЦ(Товар)))+
", место хранения """+СокрЛП(Склад)+""": недостаточно товара """+СокрЛП(Товар)+
". Не хватает "+СокрЛП(ТаблицаСебестоимости.Количество)+". Проводка не записана!", "!");
КонецЕсли;
КонецЦикла;
КонецЕсли;//Если НеСписыватьТМЦ = 0 Тогда

// Основной цикл для формирования проводок по строкам документа
// списание себестоимости, отражение дохода от реализации
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
ВидНоменклатурыТМЦ = ТМЦ.ВидНоменклатуры.ТипНоменклатуры;
// Признак списания себестоимости ( = 1 Для ГП,себестоимость которой списывают в конце месяца)
Если НеСписыватьТМЦ = 0 Тогда
// Для работ или услуг себестоимость контролировать не нужно
Если ((ВидНоменклатурыТМЦ = Перечисление.ТипыНоменклатуры.Товар)
или (ВидНоменклатурыТМЦ = Перечисление.ТипыНоменклатуры.Продукция)
или (ВидНоменклатурыТМЦ = Перечисление.ТипыНоменклатуры.Прочие)) Тогда

// Если не указано количество списываемого товара, выдаем сообщение и проводку не формируем.
Если Количество = 0 Тогда
глСообщить(Операция, "Не указано списываемое количество материала """+СокрЛП(ТзДокумента.ТМЦ)+""". Проводка не записана!", "!");
Продолжить;
КонецЕсли;

// Если не указан тип номенклатуры для реализуемого товара, выдаем сообщени и не формируем проводку
Если ПустоеЗначение(ТМЦ.ВидНоменклатуры) = 1 Тогда
глСообщить(Операция, СокрЛП(ТМЦ) + ": вид номенклатуры не выбран. Проводка не записана!", "!");
Продолжить;
КонецЕсли;


КоличествоНаСкладе = 0;
СуммаНаСкладе = 0;
МожноСписатьКоличество = 0;
МожноСписатьСумму = 0;
Стр = "";
Если ТаблицаСебестоимости.НайтиЗначение(ТМЦ,Стр,"ТМЦ") = 1 Тогда
ТаблицаСебестоимости.ПолучитьСтрокуПоНомеру(Стр);
КоличествоНаСкладе = ТаблицаСебестоимости.ОстатокКоличество;
СуммаНаСкладе = ТаблицаСебестоимости.ОстатокСумма;
МожноСписатьКоличество = Макс(0,ТаблицаСебестоимости.ОстатокКоличество - ТаблицаСебестоимости.СписаноВДокументеКоличество);
МожноСписатьСумму = Макс(0,ТаблицаСебестоимости.ОстатокСумма - ТаблицаСебестоимости.СписаноВДокументеСумма);
КонецЕсли;

Если МожноСписатьКоличество = 0 Тогда
Продолжить;
КонецЕсли;

//Если (МожноСписатьКоличество < Количество) или (МожноСписатьКоличество = 0) Тогда
// Продолжить;
//Иначе
Если МожноСписатьКоличество = Количество Тогда
Себестоимость = МожноСписатьСумму; // Оставшаяся после списания предыдущих позиций сумма
Иначе
Попытка
Себестоимость = Окр(Количество * (СуммаНаСкладе/КоличествоНаСкладе),2);
Исключение
Себестоимость = МожноСписатьСумму;
КонецПопытки;
КонецЕсли;
//КонецЕсли;

Если ПустоеЗначение(Стр) = 0 Тогда
// Если строка есть в таблице значений
ТаблицаСебестоимости.СписаноВДокументеКоличество = ТаблицаСебестоимости.СписаноВДокументеКоличество + Количество;
ТаблицаСебестоимости.СписаноВДокументеСумма = ТаблицаСебестоимости.СписаноВДокументеСумма + Себестоимость;
КонецЕсли;

// списываем себестоимость
СчетДебета = ТМЦ.ВидНоменклатуры.СчетСебестоимости;
СчетКредита = глПолучитьСчетТМЦ(ТМЦ);

глПроводка( Операция,
СчетДебета, глСубконто(Подразделение, ВидДеятельности, ),
СчетКредита, глСубконто(Склад, ТМЦ, ),
Количество, Себестоимость, , ,
"Списана себестоимость", "ТВ", Организация );
КонецЕсли;
КонецЕсли; //Если НеСписыватьТМЦ = 0 Тогда

// доход от реализации
СчетДебета = Счет;
СчетКредита = ТМЦ.ВидНоменклатуры.СчетДоходов;
СуммаБезНалоговТг = глПересчет(СуммаБезНалогов, Валюта, Курс, глВалютаБухУчета, 1);

ВариантРеализации = глПолучитьВариантРеализации(ВидРеализации,СтавкаНДС, СтавкаАкциза);

глПроводка( Операция,
СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(Подразделение, ВидДеятельности, ВариантРеализации),
, СуммаБезНалоговТг, СуммаБезНалогов, Валюта,
"Доход от реализации", "ТВ", Организация );
КонецЦикла;

//формирование проводок по налогам
ТзНалоги = СоздатьОбъект("ТаблицаЗначений");

//НДС (по каждому виду НДС формирруется отдельная проводка)
ТзДокумента.Выгрузить(ТзНалоги, , , "СтавкаНДС, СуммаНДС");
ТзНалоги.Свернуть("СтавкаНДС", "СуммаНДС");
ТзНалоги.ВыбратьСтроки();

Пока ТзНалоги.ПолучитьСтроку() = 1 Цикл

Если ТзНалоги.СуммаНДС = 0 Тогда
Продолжить;
КонецЕсли;

СчетДебета = Счет;
СчетКредита = СчетПоКоду("313");
СуммаНДСТг = глПересчет(ТзНалоги.СуммаНДС, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция,
СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(глПолучитьНалогНДС(ТзНалоги.СтавкаНДС, 1, ДатаДок), Перечисление.ВидыПлатежей.НалогВзнос, ),
, СуммаНДСТг, ТзНалоги.СуммаНДС, Валюта,
"НДС: ", "ТВ", Организация, 1);
КонецЦикла;

//Акциз (по каждому виду Акциза формирруется отдельная проводка)
//НДС (по каждому виду НДС формирруется отдельная проводка)
ТзДокумента.Выгрузить(ТзНалоги, , , "СтавкаАкциза, СуммаАкциза");
ТзНалоги.Свернуть("СтавкаАкциза", "СуммаАкциза");
ТзНалоги.ВыбратьСтроки();

Пока ТзНалоги.ПолучитьСтроку() = 1 Цикл
Если ТзНалоги.СуммаАкциза = 0 Тогда
Продолжить;
КонецЕсли;
СчетДебета = Счет;
СчетКредита = СчетПоКоду("314");
СуммаАкцизаТг = глПересчет(ТзНалоги.СуммаАкциза, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция,
СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(глПолучитьНалогАкциз(ТзНалоги.СтавкаАкциза, 1), Перечисление.ВидыПлатежей.НалогВзнос, ),
, СуммаАкцизаТг, ТзНалоги.СуммаАкциза, Валюта,
"Акциз: ", "ТВ", Организация, 1);
КонецЦикла;

// Зачет по аванса полученного
Если (ЗачетАванса = 1) и (СуммаАванса<0>= Дата(2008, 01, 01)) Тогда
СуммаАвансаВВалютеУчета = глРассчитатьСуммуАвансаВВалютеУчета(Контекст,Валюта,СуммаАванса, СчетАванса, "Контрагенты, Основания", Контрагент, Основание,);
Иначе
СуммаАвансаВВалютеУчета = глПересчет(СуммаАванса,Валюта,Курс,глВалютаБухУчета,1);
КонецЕсли;

глПроводка( Операция, СчетДебета, глСубконто(Контрагент, Основание, ),
СчетКредита, глСубконто(Контрагент, Основание, ), ,
СуммаАвансаВВалютеУчета, СуммаАванса, Валюта,
"Зачет аванса", "ТВ", Организация );

// переоценка валюты только в случае закрытия имеющейся Кт задолженности
глКурсоваяРазницаПоОперации(Контекст, Валюта, Курс, СуммаАванса, "Дт", СчетДебета, Контрагент, Основание);
КонецЕсли;

// оборот по реализованным товарам по забалансу
ТзДокумента.ВыбратьСтроки();
Пока ТзДокумента.ПолучитьСтроку() = 1 Цикл
ВидНоменклатурыТМЦ = ТзДокумента.ТМЦ.ВидНоменклатуры.ТипНоменклатуры;
// Признак списания себестоимости ( = 1 Для ГП,себестоимость которой списывают в конце месяца)
Если НеСписыватьТМЦ = 1 Тогда
// Для работ или услуг себестоимость контролировать не нужно
Если ((ВидНоменклатурыТМЦ <> Перечисление.ТипыНоменклатуры.Услуга)
и (ВидНоменклатурыТМЦ <> Перечисление.ТипыНоменклатуры.Работа)) Тогда

глПроводка( Операция,
СчетПоКоду("РТ"), глСубконто(ТзДокумента.ТМЦ, Склад, ТекущийДокумент()),
, ,
ТзДокумента.Количество, , , ,
"Реализация без списания себестоимости", "ТВ", Организация );
КонецЕсли;
КонецЕсли;
// Оборот по реализации
// По забалансовому счету "ОР" проводим сумму оборота по реализации и НДС
ВариантРеализации = глПолучитьВариантРеализации(ВидРеализации, ТзДокумента.СтавкаНДС, ТзДокумента.СтавкаАкциза);
СуммаОборотаТг = глПересчет(ТзДокумента.СуммаБезНалогов, Валюта, Курс, глВалютаБухУчета, 1) +
глПересчет(ТзДокумента.СуммаНДС, Валюта, Курс, глВалютаБухУчета, 1) +
глПересчет(ТзДокумента.СуммаАкциза, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция, СчетПоКоду("ОР"), глСубконто(Контрагент, ТзДокумента.ТМЦ, ВариантРеализации),
, ,
ТзДокумента.Количество, СуммаОборотаТг, , ,
"Оборот по реализации с НДС", "ТВ", Организация );

// Оборот по акцизу
Если ТзДокумента.СуммаАкциза = 0 Тогда
Продолжить;
КонецЕсли;

КоэффициентПересчета = 1;
Если ТзДокумента.ТМЦ.КоэффициентПересчета <> 0 Тогда
КоэффициентПересчета = ТзДокумента.ТМЦ.КоэффициентПересчета;
КонецЕсли;

СуммаАкцизаТг = глПересчет(ТзДокумента.СуммаАкциза, Валюта, Курс, глВалютаБухУчета, 1);

глПроводка( Операция, СчетПоКоду("АК"), глСубконто(ТзДокумента.СтавкаАкциза, ТзДокумента.ТМЦ, ), , ,
ТзДокумента.Количество / КоэффициентПересчета, СуммаАкцизаТг, , ,
"Акциз", "ТВ", Организация, 1);


КонецЦикла;

Если глЗаписатьОперацию(Операция, "Реализация товаров", Итог("Сумма"), 0) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

КонецПроцедуры // ОбработкаПроведения()
Цитата:


Правда, что там будет с себестоимостью, надеюсь представляешь.


Добавлено спустя 1 минуту 32 секунды:

Мдя, что-то форум глючит с цитатами.



Автор: Cleaner
Добавлено: #14  Сб Июн 27, 2009 16:23:22
Заголовок сообщения:

KrEAtive говорит:
Правда, что там будет с себестоимостью, надеюсь представляешь.

Да и вообще идея с отключением контроля остатков - БСКТН. Можно обойтись ОСВ по РТ. И никаких танцев с бубном.



Автор: Банер
Добавлено: #15  Сб Июн 27, 2009 17:57:12
Заголовок сообщения:

KrEAtive не накроется 1с7 проверен код,можно верить на слово. а может как то по другому можно сделать проведение док-та накладная например поменять каккой нибудь файл всамой базе с программой.

Добавлено спустя 8 минут:

попробовал не сработало <<?>>[/quote]// #Предопределенные **********************************************************
{Документ.РеализацияТоваров.Модуль Документа(1)}: Неопознанный оператор

Добавлено спустя 3 минуты 18 секунд:

Если (ЗачетАванса = 1) и (СуммаАванса<0<<?>>>= Дата(2008, 01, 01)) Тогда
{Документ.РеализацияТоваров.Модуль Документа(231)}: Ожидается символ ')'
СуммаАвансаВВалютеУчета = глРассчитатьСуммуАвансаВВалютеУчета(Контекст,Валюта,СуммаАванса, СчетАванса<<?>>, "Контрагенты, Основания", Контрагент, Основание,);
{Документ.РеализацияТоваров.Модуль Документа(232)}: Переменная не определена (СчетАванса)
<<?>>КонецЕсли;
{Документ.РеализацияТоваров.Модуль Документа(244)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли;
{Документ.РеализацияТоваров.Модуль Документа(244)}: Обнаружено логическое завершение исходного текста модуля



Автор: Cleaner
Добавлено: #16  Сб Июн 27, 2009 18:16:18
Заголовок сообщения:

Банер говорит:
не накроется 1с7 проверен код,можно верить на слово

Можно все, что угодно. Но под свою ответственность.
Банер говорит:
а может как то по другому можно сделать проведение док-та накладная например поменять каккой нибудь файл всамой базе с программой.

Так уже нельзя.
Банер говорит:
попробовал не сработало

Значит надо найти и исправить ошибку.



Автор: KrEAtive
Добавлено: #17  Сб Июн 27, 2009 18:44:34
Заголовок сообщения:

Банер говорит:
попробовал не сработало <<?>>
// #Предопределенные[/quote]
Это quote вылезло случайно. Хотел цитату сделать.
Убери вообще первую строку
[/quote]// #Предопределенные **********************************************************

Добавлено спустя 1 минуту 24 секунды:

Банер говорит:
KrEAtive не накроется 1с7 проверен код,можно верить на слово. а может как то по другому можно сделать проведение док-та накладная например поменять каккой нибудь файл всамой базе с программой.

Не боись. Попробовал. Ну надеюсь, на копия базы-то есть



Автор: Банер
Добавлено: #18  Сб Июн 27, 2009 21:02:24
Заголовок сообщения:

KrEAtiveЭто quote заметил тоже и убрал но не сработало

Добавлено спустя 6 минут 11 секунд:

Если (ЗачетАванса = 1) и (СуммаАванса<0<<?>>>= Дата(2008, 01, 01)) Тогда
{Документ.РеализацияТоваров.Модуль Документа(231)}: Ожидается символ ')'
СуммаАвансаВВалютеУчета = глРассчитатьСуммуАвансаВВалютеУчета(Контекст,Валюта,СуммаАванса, СчетАванса<<?>>, "Контрагенты, Основания", Контрагент, Основание,);
{Документ.РеализацияТоваров.Модуль Документа(232)}: Переменная не определена (СчетАванса)
<<?>>КонецЕсли;
{Документ.РеализацияТоваров.Модуль Документа(244)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли;
{Документ.РеализацияТоваров.Модуль Документа(244)}: Обнаружено логическое завершение исходного текста модуля



Автор: KrEAtive
Добавлено: #19  Сб Июн 27, 2009 21:11:07
Заголовок сообщения:

Да, точно. При вставке текст изменился. Видно сайт меняет. Лови в прикрепленном файле. Проверил на 261-м релизе в Демо базе.


Автор: Банер
Добавлено: #20  Сб Июн 27, 2009 21:28:47
Заголовок сообщения:

Реализация товаров №215 от 05.06.2009: Реализация товаров
-> - проведение прервано --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Счет 1330, место хранения "Основной склад недостаточно товара "25 м/с 2сл. Не хватает 341. Проводка не записана!
Счет 1330, место хранения "Основной склад : недостаточно товара " 25 м/с 2сл. Не хватает 1512. Проводка не записана!
Счет 1330, место хранения "Основной склад недостаточно товара "м 25 м/с 2сл. Не хватает 3838. Проводка не записана!
Счет 1330, место хранения "Основной склад : недостаточно товара "4,8м 50 м/с 2сл. Не хватает 12. Проводка не записана!

уже по другому но всерано не проводится

Добавлено спустя 3 минуты 27 секунд:

мне нужно чтобы провелось и увидеть все потом в оборотке с минусом ,а потом внести задним числом минусовый товар в остатки, может еще как то по другому сделать.



Автор: Нерезидент Баланса
Добавлено: #21  Сб Июн 27, 2009 21:33:52
Заголовок сообщения: Re: Что нужно сделать в конфигураторе для проведения накладных

Нет смысла менять код.
Банер говорит:
Стандартная проедура установки галочки для формирования дохода без себестоимости не подходит.Нужно видеть минусовые остатки на счетах для конроля недооприходованых ТМЦ.

Ещё как подходит. Весь проданный таким образом товар можно увидеть на забалансовом счете РТ, как и сказал Сергей.



Автор: KrEAtive
Добавлено: #22  Сб Июн 27, 2009 21:45:00
Заголовок сообщения:

Да, еще в одном месте нужно убрать. Не проверил. Щас выложу

Добавлено спустя 2 минуты 42 секунды:

Не проверил, когда товара совсем нет на складе.

Добавлено спустя 42 минуты 40 секунд:

Лучше так:



Автор: Cleaner
Добавлено: #23  Вс Июн 28, 2009 00:54:16
Заголовок сообщения:

Нерезидент Баланса говорит:
Весь проданный таким образом товар можно увидеть на забалансовом счете РТ, как и сказал Сергей

А когда заставляешь пользоваться стандартными процедурами, обычно у бухгалтеров вылазит Эго.



Автор: Банер
Добавлено: #24  Вс Июн 28, 2009 09:40:04
Заголовок сообщения:

Cleaner говорит:
Нерезидент Баланса говорит:
Весь проданный таким образом товар можно увидеть на забалансовом счете РТ, как и сказал Сергей

А когда заставляешь пользоваться стандартными процедурами, обычно у бухгалтеров вылазит Эго.
да я согласен что можно увидеть и можно потом списать ,надо просто правильно поставить галочку где надо,но как уже говорилось выше это не подходит

Добавлено спустя 4 минуты 54 секунды:

Особенности учета таковы что по одной накладной задействованы несколько конрактов с разными ценамии за еденицу отпускаемой продукции и надо делать помимо основной накладной еще пару дополнительных с другими ценами но количество тоже самое ,делается это с помощбю галочки (не формировать проводки по списанию ТМЦ) накладная попадает в акт сверки ,ндс считаеся ,а количество не списывается,вот и весь фокус.



Автор: Cleaner
Добавлено: #25  Вс Июн 28, 2009 11:57:32
Заголовок сообщения:

Банер говорит:
по одной накладной задействованы несколько конрактов с разными ценамии за еденицу отпускаемой продукции и надо делать помимо основной накладной еще пару дополнительных с другими ценами но количество тоже самое ,делается это с помощбю галочки (не формировать проводки по списанию ТМЦ) накладная попадает в акт сверки ,ндс считаеся ,а количество не списывается,вот и весь фокус.

Если я правильно понял, один и тот же товар продается несколько раз? Т.е. купили 1 шт., а продается 3 раза по 1 шт., итого 3 шт.?



Автор: Банер
Добавлено: #26  Вс Июн 28, 2009 12:21:12
Заголовок сообщения:

KrEAtive последний Модуль Документа.txt более удачный ,почти в точку.
Спасибо за участие,готов еще присылать кучу спасибок но накладную надо еще немного доработать, дело в том что когда количество есть на складе списывается любое количество и оборотно сальдовая формируется с минусом ,но когда нет количества минус не формируется. И еще ,если в накладной повторяется номенклатура то эта позиция тоже не проводится.



Автор: KrEAtive
Добавлено: #27  Вс Июн 28, 2009 15:16:06
Заголовок сообщения:

Банер говорит:
но когда нет количества минус не формируется

Надо брать МодульДокументаПравильный.txt. Там будет списываться количество на позиции, кот. вообще нет.



Автор: Банер
Добавлено: #28  Вс Июн 28, 2009 19:30:54
Заголовок сообщения:

Cleaner говорит:
Банер говорит:
по одной накладной задействованы несколько конрактов с разными ценамии за еденицу отпускаемой продукции и надо делать помимо основной накладной еще пару дополнительных с другими ценами но количество тоже самое ,делается это с помощбю галочки (не формировать проводки по списанию ТМЦ) накладная попадает в акт сверки ,ндс считаеся ,а количество не списывается,вот и весь фокус.

Если я правильно понял, один и тот же товар продается несколько раз? Т.е. купили 1 шт., а продается 3 раза по 1 шт., итого 3 шт.?
да правильно но проводится 1накладная нормально а другие с галочками не формиров проводки


Автор: Cleaner
Добавлено: #29  Вс Июн 28, 2009 21:29:53
Заголовок сообщения:

Банер говорит:
проводится 1накладная нормально а другие с галочками не формиров проводки

БСКТН. Финики должны обожать вас.



Автор: Банер
Добавлено: #30  Вс Июн 28, 2009 21:32:23
Заголовок сообщения:

KrEAtive говорит:
Банер говорит:
но когда нет количества минус не формируется

Надо брать МодульДокументаПравильный.txt. Там будет списываться количество на позиции, кот. вообще нет.
вроде работает


Автор: Sergsen
Добавлено: #31  Чт Июл 09, 2009 14:41:13
Заголовок сообщения:

Попробуйте вот этот вариант МодуляДокумента для Документа РеализацияТоваров.
Здесь в случае если количество в строке превышает ОстатокПоСчету+списанное в предыдущих строках по данной товарной позиции, Себестоимость при проводке данной строки обнуляется, количественный остаток идет красным.
Заменить надо весь текст модуля документа на предложенный.



Автор: Банер
Добавлено: #32  Пт Июл 10, 2009 11:08:07
Заголовок сообщения:

Sergsen говорит:
Попробуйте вот этот вариант МодуляДокумента для Документа РеализацияТоваров.
Здесь в случае если количество в строке превышает ОстатокПоСчету+списанное в предыдущих строках по данной товарной позиции, Себестоимость при проводке данной строки обнуляется, количественный остаток идет красным.
Заменить надо весь текст модуля документа на предложенный.
спасибо-попробую, а можно вставить код напрямую в каталог базы 1с(ExtDb или ExtForms или другой)

Добавлено спустя 1 минуту 9 секунд:

без конфигуратора



Автор: Sergsen
Добавлено: #33  Пт Июл 10, 2009 11:23:57
Заголовок сообщения:

Банер говорит:
а можно вставить код напрямую в каталог базы 1с(ExtDb или ExtForms или другой) без конфигуратора


Нет. Это модуль проведения документа, и только документы могут генерировать проводки и только через модуль документа. Так 1С устроена. Через внешние процедуры можно заставить документы перепроводиться или проводиться, но происходить это будет так, как определено модулем документа.

Добавлено спустя 25 минут 57 секунд:

Если боитесь напортачить, сделайте так:
1. Откройте конфигурацию в Конфигураторе
2. Создайте новый текстовый файл (Файл->Новый>Текст) и скопируйте туда все содержимое Модуля документа РеализацияТоваров. (Действия->Выделить все; Действия->Вырезать; перейдите в окно текстового документа; Действия->Вставить). Текстовый документ сохраните
3. Откройте в конфигураторе тот текстовый документ, который Вы скачали. Скопируйте аналогичным образом его содержимое и вставьте в пустое уже окно Модуля документа.
4. Прежде чем закрывать Модуль документа и сохранять изменения в конфигурации проверьте синтаксис (Действия->Синтаксический контроль). Если нет ошибок, сохраните конфигурацию и запустите 1С (Можно все по кнопке F11 из конфигуратора). Если ошибки есть повторите еще раз замену содержимого Модуля документа.



Автор: Банер
Добавлено: #34  Пт Июл 10, 2009 13:34:19
Заголовок сообщения:

а можно вставить напрямую в каталог базы 1с(ExtDb или ExtForms или другой) только файл с новыми отчетами например форму 300 по ндс


Автор: Sergsen
Добавлено: #35  Пт Июл 10, 2009 13:53:00
Заголовок сообщения:

Я не понял, что Вы имеете ввиду.
Если в Вашем вопросе подразумевается, можно ли создать внешнюю обработку, которая храниться в в каталоге ExtDb или ExtForms, и которая проводит документ вида "РеализацияТоваров" так, как было предложено выше, то ответ - нет. Проведение документа определяется исключительно Модулем документа, сохраненным в конфигурации. Можно извне создать документ, заполнить и сохранить его, заставить проводиться, но проведется он в соответствии с процедурой определенной в Модуле Документа данного вида.

Добавлено спустя 3 минуты 51 секунду:

Там вообще-то есть искусственный метод загрузки текста модуля из файла если в первой строке модуля идет директива (смотрите в Синтакс-Помощнике)
#ЗагрузитьИзФайла <ИмяФайла>

Добавлено спустя 12 минут 42 секунды:

В Вашем случае директива может выглядеть так:

#ЗагрузитьИзФайла ExtForms\moduldoc.txt

если Вы сохраните сохраните процедуру проведения moduldoc.txt в папке ExtForms. Но директиву надо добавлять в конфигураторе

Добавлено спустя 5 минут 39 секунд:

И еще, изменять этот файл надо то же в конфигураторе, дабы не поиметь проблем с кодировками. При этом рабочую среду 1С можно не закрывать. Только не очень это удобно, т.к в текстовом файле синтаксис не подсвечивается. :%):



Автор: Банер
Добавлено: #36  Пт Июл 10, 2009 14:36:30
Заголовок сообщения:

вопрос 34 относится к другой ветке


  

Служба поддержки WWW.BALANS.KZ