Имя: Пароль:
1C
 
КД 2 Перенос МестаХранения
0 kn
 
28.04.10
19:43
Пишу правила переноса из УТ 10.2 в УТ 10.3. в 10.2 место хранения
было в свойствах номенклатуры в виде Подсклад,Ряд,Полка,Ячейка
в 10.3 надо заполнить МестоХраненияНоменклатуры.
В ПКО Номенклатуры в ПослеВыгрузки пишу

Если НЕ (Источник.ЭтоГруппа) Тогда
       
   Запрос = Новый Запрос("
   |ВЫБРАТЬ
   |    ЗначенияСвойствОбъектов.Значение КАК Подсклад,
   |    Номенклатура.Ссылка,
   |    ЗначенияСвойствОбъектов1.Значение КАК Ряд,
   |    ЗначенияСвойствОбъектов2.Значение КАК Полка,
   |    ЗначенияСвойствОбъектов3.Значение КАК Ячейка
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
   |        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
   |            И (ЗначенияСвойствОбъектов.Свойство = &Подсклад)
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
   |        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов1.Объект
   |            И (ЗначенияСвойствОбъектов1.Свойство = &Ряд)
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов2
   |        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов2.Объект
   |            И (ЗначенияСвойствОбъектов2.Свойство = &Полка)
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов3
   |        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов3.Объект
   |            И (ЗначенияСвойствОбъектов3.Свойство = &Ячейка)
   |ГДЕ
   |    Номенклатура.Ссылка = &Объект");
   
   СвПодсклад = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Подсклад");
   СвРяд = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Ряд");
   СвПолка = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Полка");
   СвЯчейка = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Ячейка");
   
       
   Запрос.УстановитьПараметр("Подсклад",СвПодсклад);
   Запрос.УстановитьПараметр("Ряд",СвРяд);
   Запрос.УстановитьПараметр("Полка",СвПолка);
   Запрос.УстановитьПараметр("Ячейка",СвЯчейка);
   Запрос.УстановитьПараметр("Объект",Источник);
   
   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл
       Если ЗначениеЗаполнено(Выборка.Подсклад)    Тогда
           Подсклад = Справочники.Склады.НайтиПоНаименованию(Выборка.Подсклад.Наименование);
       Иначе
           Прервать;
       КонецЕсли;    
       
       Если ЗначениеЗаполнено(Выборка.Ряд) Тогда
        МестоХранения = "Р-" + СокрЛП(Выборка.Ряд);
       КонецЕсли;
       Если ЗначениеЗаполнено(Выборка.Полка) Тогда
        МестоХранения = МестоХранения + "  П-" + СокрЛП(Выборка.Полка);
       КонецЕсли;
       Если ЗначениеЗаполнено(Выборка.Ячейка) Тогда
        МестоХранения = МестоХранения + "  Яч-" + СокрЛП(Выборка.Ячейка);
       КонецЕсли;
       
       
       ИсходящиеДанные = Новый Структура;
       ИсходящиеДанные.Вставить("Владелец",Подсклад);
       ИсходящиеДанные.Вставить("Наименование",МестоХранения);
       ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "МестаХранения");
               

            ИсходящиеДанные.Очистить();
        //вот здесь ??? до сюда всё работает дальше не знаю как передать местохранения
            ИсходящиеДанные.Вставить("МестоХраниения",МестоХранения);
        ИсходящиеДанные.Вставить("Номенклатура",Источник);
        ИсходящиеДанные.Вставить("Склад",Подсклад);
       
   
       ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "МестаХраненияНоменклатуры");
       
   КонецЦикла;    
       
КонецЕсли;
1 kn
 
29.04.10
17:12
вверх.
2 kn
 
02.05.10
14:03
Получилось через ПараметрыОбъекта.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший