Untitled
unknown
plain_text
2 years ago
5.5 kB
10
Indexable
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Отправление") Тогда
ДокументОтправления = ДанныеЗаполнения.Ссылка;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ДВИЖЕНИЯ ПО РЕГИСТРУ УПРАВЛЕНЧЕСКИЙ (СТАРАЯ МЕТОДИКА ПРОВЕДЕНИЯ)
Движения.Управленческий.Записывать = Истина;
Движения.Управленческий.Записать();
// Установка блокировки данных в регистре Управленческий по счету ТоварыВПути и документу отправления
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.ТоварыВПути);
ЭлементБлокировки.УстановитьЗначение(ПланыВидовХарактеристик.ВидыСубконто.ДокументОтправления, ДокументОтправления);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
// Получение остаточных данных по регистру для формирования движений
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УправленческийОстатки.Субконто2 КАК Номенклатура,
| УправленческийОстатки.КоличествоОстаток КАК КоличествоОстаток,
| УправленческийОстатки.СуммаОстаток КАК СуммаОстаток
|ИЗ
| РегистрБухгалтерии.Управленческий.Остатки(&МоментВремени, Счет = &СчетТоварыВПути, &Субконто, Субконто1 = &ДокументОтправления) КАК УправленческийОстатки";
Субконто = Новый Массив (2);
Субконто[0] = ПланыВидовХарактеристик.ВидыСубконто.ДокументОтправления;
Субконто[1] = ПланыВидовХарактеристик.ВидыСубконто.Номенклатура;
Запрос.УстановитьПараметр("Субконто", Субконто);
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("СчетТоварыВПути", ПланыСчетов.Управленческий.ТоварыВПути);
Запрос.УстановитьПараметр("ДокументОтправления", ДокументОтправления);
// Обход результатов запроса, формирование движений в регистр бухгалтерии
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// Проводка отражения прибытия товара
Проводка = Движения.Управленческий.Добавить();
Проводка.Период = Дата;
Проводка.СчетДт = ПланыСчетов.Управленческий.Товары;
Проводка.СчетКт = ПланыСчетов.Управленческий.ТоварыВПути;
Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Склады] = Склад;
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ДокументОтправления] = ДокументОтправления;
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ДатаПрибытия] = Дата;
Проводка.КоличествоДт = Выборка.КоличествоОстаток;
Проводка.КоличествоКт = Выборка.КоличествоОстаток;
Проводка.Сумма = Выборка.СуммаОстаток;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Editor is loading...