В процессе проведения нужно откорректировать формируемые проводки. Учитывая сложность их формирования решил поменять в конце записи документа. Нужно подменить Субконто и количество.
В процедуре ПриЗаписи() в модуле документа. Ничего не работает. Все остается как есть. Получилось сделать только при записи формы со ссылкой на экспортную процедуру Документа. Но это не совсем годится. Что тут можно предпринять?
Процедура ОткорректироватьПроводоки() Экспорт
Для Каждого Строка Из Товары Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.СубконтоКт.Номенклатура = Строка.Номенклатура
Тогда
Запись.СубконтоДт.Номенклатура = Строка.НоменклатураНовая;
Запись.КоличествоДт = Запись.КоличествоКт*Строка.КоэффициентПеревода;
КонецЕсли;
КонецЦикла;
КонецЦикла;
НаборЗаписей.Записать(Истина);
КонецПроцедуры
Если эту процедуру вы хотите вызвать где-то в момент проведения документа, тогда набор записей получайте через Движения.Хозрасчетный.
ПС. а вообще говнокодом очень попахивает
Каким методом их менять? В конце обработки проведения ставлю:
1)
ТЗ_ПроводокСформированых = Движения.Хозрасчетный.Выгрузить();
- возвращает таблицу проводокНаборПроводок = ЭтотОбъект.Движения.Хозрасчетный.Прочитать();
- выдает ошибкуДвижения.Хозрасчетный.ВыполнитьДействияПередЗаписьюДвижений();
- Что тут происходит?
НаборПроводок = ЭтотОбъект.Движения.Хозрасчетный;
Нужен был документ меняющий одну номенклатуру на другую и так же количество ч/з некий коэффициент. Провести его по всем регистрам УТП. Чтоб не заморачиваться взял за основу документ ПеремещениеТоваров и дальше корректировал его движения. Пришлось выкручиваться. Так вроде работает:
////////////////////////////////////
НаборЗаписей = ЭтотОбъект.Движения.Хозрасчетный;
Для Каждого Строка Из Товары Цикл
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.СубконтоКт.Номенклатура = Строка.Номенклатура
Тогда
Запись.СубконтоДт.Номенклатура = Строка.НоменклатураНовая;
Запись.КоличествоДт = Запись.КоличествоКт*Строка.КоэффициентПеревода;
КонецЕсли;
КонецЦикла;
КонецЦикла;
///////////////////////////////////////
Движения.Хозрасчетный.ВыполнитьДействияПередЗаписьюДвижений();
///
КонецПроцедуры // ОбработкаПроведения()
НаборПроводок = ЭтотОбъект.Движения.Хозрасчетный;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua