Имя: Пароль:
1C
1С v8
1С УТ11 ЗаказКлиента Заполнить обеспечение
0 creator_mc
 
10.08.15
10:11
Есть типовая конфигурация УТ11 1С 8.3.5 в ней соответственно заполняю заказ клиента, далее заполнения произвожу установку цен и склада, после этого пытаюсь произвести "Заполнить обеспечение", но появляется сообщение об ошибке
[QUOTE]Получение элемента по индексу для значения не определено[/QUOTE].
При переходе в конфигуратор 1С видно ошибку в строке
[CODE]Таблица = Приемник.Товары[ИменаСвойств.Получить(Строка.ВариантОбеспечения)];[/CODE].

Народ подскажите кто сталкивался, как убрать эту ошибку, что бы произвести заполнение обеспечения по позициям в  заказе клиента.
1 Strogg
 
10.08.15
10:15
Каков тип значения у (Приемник) в твоем случае?
И типЗначения (ИменаСвойств) до кучи...
2 creator_mc
 
10.08.15
10:41
(1) ТипЗнч Приемник     - Структура
    ТипЗнч ИменаСвойств - Соответствие
3 Strogg
 
10.08.15
10:52
(2) Идем дальше. Вот в эторй структуре у тебя есть элемент Товары. Его тип значения какой?
4 creator_mc
 
10.08.15
11:08
(3)
тоже Структура
5 Strogg
 
10.08.15
11:25
ну вот, а в [] - это индекс. А код поразумевает, что Приемник.Товары - этообъект, для которого доступно получение значения по индексу (типа ТЗ, или массива).
6 creator_mc
 
10.08.15
11:34
Странно что раньше до обновления всё работало.
Был релиз УТ 11.1.2 сейчас 11.1.10.116

Сама процедура находится в общем модуле ОбеспечениеСервер. Можете сами просмотреть.

Процедура РазложитьПоВариантамОбеспечения(Приемник, Источник) Экспорт
    ИменаСвойств = Новый Соответствие();
    ИменаСвойств.Вставить(Перечисления.ВариантыОбеспечения.ОтгрузитьОбособленно, "ОтгрузитьОбособленно");
    ИменаСвойств.Вставить(Перечисления.ВариантыОбеспечения.Обособленно,          "Обособленно");
    ИменаСвойств.Вставить(Перечисления.ВариантыОбеспечения.Отгрузить,            "Отгрузить");
    ИменаСвойств.Вставить(Перечисления.ВариантыОбеспечения.СоСклада,             "Резервировать");
    ИменаСвойств.Вставить(Перечисления.ВариантыОбеспечения.ИзЗаказов,            "РезервироватьКСроку");
    ИменаСвойств.Вставить(Перечисления.ВариантыОбеспечения.Требуется,            "Обеспечить");
    ИменаСвойств.Вставить(Перечисления.ВариантыОбеспечения.НеТребуется,          "НеОбеспечивать");
                        
Для Каждого Строка Из Источник Цикл
        Если Строка.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга Тогда
            Таблица = Приемник.Услуги.ВсеВариантыОбеспечения;
        ИначеЕсли Строка.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Работа Тогда
            Таблица = Приемник.Работы[ИменаСвойств.Получить(Строка.ВариантОбеспечения)];
        ИначеЕсли Строка.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар Тогда
            Таблица = Приемник.Товары[ИменаСвойств.Получить(Строка.ВариантОбеспечения)];
        Иначе
            Таблица = Приемник.Тара[ИменаСвойств.Получить(Строка.ВариантОбеспечения)];
        КонецЕсли;

    СтрокаПриемника = Таблица.Добавить();
            ЗаполнитьЗначенияСвойств(СтрокаПриемника, Строка);
    КонецЦикла;
КонецПроцедуры



Но решение так и не найдено.