Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 20:42

Как установить реквизит из подчиненного справочника

Автор Kytyzov_m, 07 мая 2015, 01:49

0 Пользователей и 1 гость просматривают эту тему.

Kytyzov_m

Ребята, выручайте!
Необходимо выбрать реквизит ЕдиницаИзмеренияМест в Справочники.Номенклатура из Справочники.ЕдиницыИзмерения.

Сложность (для меня :() заключается в том, что БазоваяЕдиницаИзмерения = шт,ЕдиницаДляОтчетов=шт, ЕдиницаХраненияОстатков = шт, а ЕдиницаИзмеренияМест = Незаполнено. 
Справочник.ЕдиницыИзмерения заполнен. (в нем по "наименованию"  2  типа значений - упаковки("упак") и штуки(шт)). Владелец у упаковок в этом справочнике прописан правильно.

Пробовал следующее:
Запрос = Новый Запрос("ВЫБРАТЬ
|   Номенклатура.Ссылка
|ИЗ
|   Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|   Номенклатура.ЭтоГруппа = ЛОЖЬ");

Выборка = Запрос.Выполнить();

Пока Выборка.Следующий() Цикл
объект = Выборка.Ссылка.ПолучитьОбъект();
объект.ОбменДанными.Загрузка = Истина;
объект.ЕдиницаИзмеренияМест = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("упак");

объект.Записать();

   
ОбработкаПрерыванияПользователя();
КонецЦикла;   

В чем ошибка? Обработка ни чего не проставляет, уже третьи сутки сижу. Номенклатуры - более 10 000 позиций. В ручную не вариант.
Конфигурация "Управление торговлей", редакция 10.3 (10.3.31.3). Обычное приложение


vitasw

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения
|ПОМЕСТИТЬ ВТ
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
| ПО Номенклатура.Ссылка = ЕдиницыИзмерения.Владелец
| И (ЕдиницыИзмерения.Наименование ПОДОБНО ""%упак%"")
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И Номенклатура.ЕдиницаИзмеренияМест = ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ.Номенклатура,
| МАКСИМУМ(ВТ.ЕдиницаИзмерения) КАК ЕдиницаИзмерения
|ИЗ
| ВТ КАК ВТ
|ГДЕ
| НЕ ВТ.ЕдиницаИзмерения ЕСТЬ NULL
| И ВТ.ЕдиницаИзмерения <> ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| ВТ.Номенклатура";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;

cska-fanat-kz

справочник ЕдиницыИзмерения - подчинен Номенклатуре.
надо в цикле с номенклатурой создавать новую единицу измерения и только потом присваивать ее номенклатуре.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Kytyzov_m

Всем Большое Спасибо. Разобрался.

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Номенклатура,
        |    ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения
        |ПОМЕСТИТЬ ВТ
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
        |        ПО Номенклатура.Ссылка = ЕдиницыИзмерения.Владелец
        |            И (ЕдиницыИзмерения.Наименование ПОДОБНО ""%упак%"")
        |ГДЕ
        |    НЕ Номенклатура.ЭтоГруппа
        |    И Номенклатура.ЕдиницаИзмеренияМест = ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка)
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ.Номенклатура,   
        |    МАКСИМУМ(ВТ.ЕдиницаИзмерения) КАК ЕдиницаИзмерения
        |ИЗ
        |    ВТ КАК ВТ
        |ГДЕ
        |    НЕ ВТ.ЕдиницаИзмерения ЕСТЬ NULL
        |    И ВТ.ЕдиницаИзмерения <> ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка)
        |
        |СГРУППИРОВАТЬ ПО
        |    ВТ.Номенклатура";

    Результат = Запрос.Выполнить();

    ВыборкаНоменклатура = Результат.Выбрать();

   Пока ВыборкаНоменклатура.Следующий() Цикл
     Объект = ВыборкаНоменклатура.Номенклатура.ПолучитьОбъект();           
      Если НЕ ЗначениеЗаполнено(Объект.ЕдиницаИзмеренияМест) Тогда                 
            Объект.ЕдиницаИзмеренияМест = ВыборкаНоменклатура.ЕдиницаИзмерения;
         Объект.Записать();
      КонецЕсли;            
    КонецЦикла;


Отдельное Спасибо - vitasw .:ooifh:

cska-fanat-kz

Цитата: Kytyzov_m от 07 мая 2015, 18:20Если НЕ ЗначениеЗаполнено(Объект.ЕдиницаИзмеренияМест) Тогда

вот это условие - лишнее.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск