Имя: Пароль:
1C
1С v8
КА 2.2 Размещение товаров не привязывается к Приходному ордеру
0 MaiorovYury
 
04.04.17
10:24
Кто работает в КА 2.2.2.193, да и вообще в КА
Есть догадки почему программисты 1с решили не привязывать документы Размещение товаров к Приходному ордеру?

Вот код из ПередЗаписью ОтборРазмещениеТоваров

    ИначеЕсли ВидОперации = Перечисления.ВидыОперацийОтбораРазмещенияТоваров.Размещение Тогда
        
        ТоварыОтбор.Очистить();
        ЗонаОтгрузки = Справочники.СкладскиеЯчейки.ПустаяСсылка();
        Распоряжение = Неопределено;
1 MaiorovYury
 
04.04.17
10:24
Я конечно закоментил пару строк и все работает, но вообще не понятна логика)
2 Худой
 
04.04.17
12:06
Скорее всего, это делается настройками. А ты, бах и в обход настроек.
3 MaiorovYury
 
04.04.17
12:55
Вот весь код процедуры

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
    
    ПроведениеСервер.УстановитьРежимПроведения(ЭтотОбъект, РежимЗаписи, РежимПроведения);

    ДополнительныеСвойства.Вставить("ЭтоНовый",    ЭтоНовый());
    ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи);
    
    Если ВидОперации = Перечисления.ВидыОперацийОтбораРазмещенияТоваров.Отбор Тогда
        
        ТоварыРазмещение.Очистить();
        ЗонаПриемки = Справочники.СкладскиеЯчейки.ПустаяСсылка();
        
    ИначеЕсли ВидОперации = Перечисления.ВидыОперацийОтбораРазмещенияТоваров.Размещение Тогда
        
        ТоварыОтбор.Очистить();
        ЗонаОтгрузки = Справочники.СкладскиеЯчейки.ПустаяСсылка();
        //(3.Майоров Юрий - 03-Апр-2017 - Документ ОтборРазмещениеТоваров: Модуль объекта - ПередЗаписью
        //Распоряжение = Неопределено;
        //)3.Майоров Юрий - 03-Апр-2017 - Документ ОтборРазмещениеТоваров: Модуль объекта - ПередЗаписью
        
    ИначеЕсли ВидОперации = Перечисления.ВидыОперацийОтбораРазмещенияТоваров.Перемещение Тогда
        ЗонаПриемки = Справочники.СкладскиеЯчейки.ПустаяСсылка();
        ЗонаОтгрузки = Справочники.СкладскиеЯчейки.ПустаяСсылка();
        Распоряжение = Неопределено;
        
    КонецЕсли;
    
    ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(ЭтотОбъект, Документы.ОтборРазмещениеТоваров);
    НоменклатураСервер.ОчиститьНеиспользуемыеСерии(ЭтотОбъект,ПараметрыУказанияСерий.Отбор);
    НоменклатураСервер.ОчиститьНеиспользуемыеСерии(ЭтотОбъект,ПараметрыУказанияСерий.Размещение);
    
    ОбъемОтбор = 0;
    ВесОтбор = 0;
    
    ОбъемРазмещение = 0;
    ВесРазмещение = 0;
    
    Выполнено = (Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.ВыполненоБезОшибок
                Или Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.ВыполненоСОшибками);
    
    Для каждого СтрТабл из ТоварыРазмещение Цикл
        Если Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.ВыполненоБезОшибок Тогда
            СтрТабл.КоличествоРазмещено         = СтрТабл.Количество;
            СтрТабл.КоличествоУпаковокРазмещено = СтрТабл.КоличествоУпаковок;
        ИначеЕсли Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.ВРаботе
            Или Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.Подготовлено Тогда
            СтрТабл.КоличествоРазмещено         = 0;
            СтрТабл.КоличествоУпаковокРазмещено = 0;
        КонецЕсли;
            
        ОбъемРазмещение = ОбъемРазмещение + СтрТабл.ОбъемУпаковки * ?(Выполнено, СтрТабл.КоличествоУпаковокРазмещено, СтрТабл.КоличествоУпаковок);
        ВесРазмещение = ВесРазмещение + СтрТабл.ВесУпаковки * ?(Выполнено, СтрТабл.КоличествоУпаковокРазмещено, СтрТабл.КоличествоУпаковок);
        
        Если СтрТабл.СтатусУказанияСерий = 0 Тогда
            СтрТабл.Серия = Справочники.СерииНоменклатуры.ПустаяСсылка();
        КонецЕсли;
    КонецЦикла;
    
    Для каждого СтрТабл из ТоварыОтбор Цикл
        Если Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.ВыполненоБезОшибок Тогда
            СтрТабл.КоличествоОтобрано         = СтрТабл.Количество;
            СтрТабл.КоличествоУпаковокОтобрано = СтрТабл.КоличествоУпаковок;
        ИначеЕсли Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.ВРаботе
            Или Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.Подготовлено Тогда
            СтрТабл.КоличествоОтобрано         = 0;
            СтрТабл.КоличествоУпаковокОтобрано = 0;
        КонецЕсли;
        
        ОбъемОтбор = ОбъемОтбор + СтрТабл.ОбъемУпаковки * ?(Выполнено, СтрТабл.КоличествоУпаковокОтобрано, СтрТабл.КоличествоУпаковок);
        ВесОтбор = ВесОтбор + СтрТабл.ВесУпаковки * ?(Выполнено, СтрТабл.КоличествоУпаковокОтобрано, СтрТабл.КоличествоУпаковок);
        
        Если СтрТабл.СтатусУказанияСерий = 0 Тогда
            СтрТабл.Серия = Справочники.СерииНоменклатуры.ПустаяСсылка();
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
4 MaiorovYury
 
04.04.17
12:56
я поэтому и удивился, что прямо в коде, без всяких условий прописано, что для Размещения стирать Распоряжение
Плюс еще кстати даже среди типов реквизита Распоряжение нет Приходного ордера
5 MaiorovYury
 
04.04.17
12:58
кто-нибудь вообще работает в КА 2.2?)
6 MaiorovYury
 
04.04.17
13:19
я что первопроходец?)
7 PCcomCat
 
04.04.17
13:27
А в КА 1.1. в требовании тупо кусочком кода скрыты реквизиты для прямого отнесения затрат на конкретный продукт. По функционалу они только для брака это сделали доступным.
8 PCcomCat
 
04.04.17
13:27
(5) Мечтаю пока...
9 MaiorovYury
 
04.04.17
13:51
(7), (8) понятно
буду значит бороться пока сам)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший