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

Для Каждого Запись Из НаборЗаписей Цикл
    
    Если Запись.СубконтоКт.Номенклатура = Строка.Номенклатура
        Тогда
         Запись.СубконтоДт.Номенклатура = Строка.НоменклатураНовая;
         Запись.КоличествоДт = Запись.КоличествоКт*Строка.КоэффициентПеревода;
        
     КонецЕсли;
    
    
КонецЦикла;

    
КонецЦикла;


НаборЗаписей.Записать(Истина);


        
    
КонецПроцедуры
Vofka
Если эту процедуру вы хотите вызвать где-то в момент проведения документа, тогда набор записей получайте через Движения.Хозрасчетный.

ПС. а вообще говнокодом очень попахивает smile.gif
Petre
Цитата(alexkhua @ 01.10.14, 23:51) необходимо зарегистрироваться для просмотра ссылки
Все остается как есть.


Событие "ОбработкаПроведения" возникает после "ПриЗаписи" объекта.
alexkhua
Цитата(Vofka @ 02.10.14, 9:03) необходимо зарегистрироваться для просмотра ссылки
Если эту процедуру вы хотите вызвать где-то в момент проведения документа, тогда набор записей получайте через Движения.Хозрасчетный.

ПС. а вообще говнокодом очень попахивает smile.gif

Согласен. smile.gif
alexkhua
Каким методом их менять? В конце обработки проведения ставлю:

1)
ТЗ_ПроводокСформированых = Движения.Хозрасчетный.Выгрузить();
- возвращает таблицу проводок

2)
НаборПроводок = ЭтотОбъект.Движения.Хозрасчетный.Прочитать();
- выдает ошибку

Дальше идет Штатное
Движения.Хозрасчетный.ВыполнитьДействияПередЗаписьюДвижений();
- Что тут происходит?
Vofka
НаборПроводок = ЭтотОбъект.Движения.Хозрасчетный;
alexkhua
Нужен был документ меняющий одну номенклатуру на другую и так же количество ч/з некий коэффициент. Провести его по всем регистрам УТП. Чтоб не заморачиваться взял за основу документ ПеремещениеТоваров и дальше корректировал его движения. Пришлось выкручиваться. Так вроде работает:

////////////////////////////////////
    НаборЗаписей = ЭтотОбъект.Движения.Хозрасчетный;
    
    Для Каждого Строка Из Товары Цикл
    

Для Каждого Запись Из НаборЗаписей Цикл
    
    Если Запись.СубконтоКт.Номенклатура = Строка.Номенклатура
        Тогда
         Запись.СубконтоДт.Номенклатура = Строка.НоменклатураНовая;
         Запись.КоличествоДт = Запись.КоличествоКт*Строка.КоэффициентПеревода;
        
     КонецЕсли;
    
    
КонецЦикла;
КонецЦикла;
   ///////////////////////////////////////

    
    
    
    Движения.Хозрасчетный.ВыполнитьДействияПередЗаписьюДвижений();
    
    
    ///
    
    
КонецПроцедуры // ОбработкаПроведения()


Цитата(Vofka @ 02.10.14, 11:25) необходимо зарегистрироваться для просмотра ссылки
НаборПроводок = ЭтотОбъект.Движения.Хозрасчетный;

Да спасибо, допер уже.smile.gif
logist
Цитата(alexkhua @ 01.10.14, 22:51) необходимо зарегистрироваться для просмотра ссылки
Учитывая сложность их формирования

А в чем сложность? В типовых документах перед движениями, как правило формируется некая таблица из которой получаются данные, можно в нее добавить необходимые поля/данные.
На самом деле, если раз сесть разобраться - все становится просто и понятно.
alexkhua
Цитата(logist @ 02.10.14, 12:43) необходимо зарегистрироваться для просмотра ссылки
На самом деле, если раз сесть разобраться - все становится просто и понятно.

Согласен с Вами на все 100.


Только документ не типовой.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.