Имя: Пароль:
1C
1С v8
Не переписываются движения.
0 Maikroft
 
01.06.20
16:37
Написал процедуру в УПП 1.3 в подписке обработки проведения типового заказа.
Но она, собака, не хочет переписывать движения, хотя по отладке всё правильно.
По сути должно быть: в том случае, если ТипОтгрузки = КОжиданию, то запись из регистра накопления удалялась.
Может, кто сталкивался с таким:

Процедура Интеграция_ОбработкаПроведенияЗаказПокупателя(Источник, Отказ, РежимПроведения) Экспорт
    
    Регистратор = Источник.Ссылка;
    
    ЕстьТоварыКОжиданию = Ложь;
    
    Для Каждого Строка из Источник.Товары Цикл
        Если Строка.ТипОтгрузки = Перечисления.ТипОтгрузки.ОжиданиеТовара Тогда
            ЕстьТоварыКОжиданию = Истина;
        КонецЕсли;
    КонецЦикла;
    
    Если ЕстьТоварыКОжиданию Тогда
        
        //Перепишем регистр накопления ТоварыВРезервеНаСкладах
        НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
        НаборЗаписей.Прочитать();
        УдаляемыеЗаписи = Новый Массив;
        Для Каждого Запись Из НаборЗаписей Цикл
            ПараметрыПоиска = Новый Структура();
            ПараметрыПоиска.Вставить("Номенклатура", Запись.Номенклатура);
            ПараметрыПоиска.Вставить("ТипОтгрузки", Перечисления.ТипОтгрузки.ОжиданиеТовара);
            НайденныеСтроки = Источник.Товары.НайтиСтроки(ПараметрыПоиска);
            Если НайденныеСтроки.Количество() = 0 Тогда
                Продолжить;
            Иначе
                УдаляемыеЗаписи.Добавить(Запись);
            КонецЕсли;
        КонецЦикла;
        Для Каждого УдаляемаяЗапись Из УдаляемыеЗаписи Цикл
            НаборЗаписей.Удалить(УдаляемаяЗапись);
        КонецЦикла;
        НаборЗаписей.Записать();
        
    КонецЕсли;
                
КонецПроцедуры
1 dka80
 
01.06.20
17:18
НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей()

это не тот набор, который пишется в обработке проведения
2 maptbln
 
01.06.20
17:31
(1) отбор по регистратору ведь есть
3 dka80
 
01.06.20
21:52
(2) ну смотри: ты проводишь документ. Началась тразнакция. Сформировался контекст данных Источник.Движения и набор движений. Но обработка проведения еще не завершена и набор не записан. Далее выполняется твоя процедура с записью новых данных. Далее завершается транзакция и записываются данные из Источник.Движения, которые и перезаписывают данные из твоей процедуры
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.