Имя: Пароль:
1C
 
Заменить значения в колонке многомерного массива?
0 Mikhail Volkov
 
16.12.14
21:50
В обработке Выгрузка данных УПП 1.3 - УП 2.0.epf есть такой фрагмент:

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

    Массив = Новый Массив;
    Массив.Добавить(Результат[Результат.Количество()-1].Выгрузить());
    Массив[0].Свернуть("Номенклатура, СчетУчета, Качество");

Колонка Качество заполняется неправильно, поскольку в категории номенклатуры у нас есть своя категория "Импорт", а обработка его принимает за "Брак". Сам запрос править не хочу, надо бы по всей колонке Качество установить значение "Новый". Как?

    // Для импорта установим ВестиУчетПоГТД и качество "Новый"
    Если Справочники.КатегорииОбъектов.НайтиПоНаименованию("Импорт") <> Справочники.КатегорииОбъектов.ПустаяСсылка() Тогда
        Для Индекс = 0 по Массив.ВГраница() Цикл
            // Как заменить значения в колонке многомерного массива?
        КонецЦикла;
    КонецЕсли;
1 Vladal
 
16.12.14
21:55
> а обработка его принимает за "Брак"

То есть там стоит если качество <> перечисления.качество.новый Тогда качество = перечисления.качество.брак?

Может в этом направлении покопаться и получить правильный первоисточник?
2 фобка
 
16.12.14
21:59
У массива нет колонки
3 Vladal
 
16.12.14
22:00
(2) МОжет у него в нулевом элементе ТЗ?
4 фобка
 
16.12.14
22:01
У тз есть метод типа заполнить() или заполнитьколонку()
5 Mikhail Volkov
 
16.12.14
22:06
(2) Судя по справке, массивы одномерные, даже Свернуть() нет!?
Тем не менее запрос выгружает в него много полей, как в ТЗ
6 фобка
 
16.12.14
22:11
(5) ты говоришь об элементах массива
7 фобка
 
16.12.14
22:12
в данном случае элемент массива это тз (это следует из (0))
8 Mikhail Volkov
 
16.12.14
22:13
(1) Ну попросили пользователи, хотя сразу видеть импорт или нет, а вносить изменения в конфигурацию (явно лишний реквизит) я не стал...
9 Mikhail Volkov
 
16.12.14
22:16
(7) Результат[Результат.Количество()-1].Выгрузить() - это ТЗ?
А как же тогда: Массив[0].Свернуть("Номенклатура, СчетУчета, Качество"); ?
10 фобка
 
16.12.14
22:20
Тз = массив[0]
Повторюсь, значением элемента массива в этом случае является тз
11 фобка
 
16.12.14
22:22
ты по индексу получил значение (в данном случае тз) и свернул его
12 Mikhail Volkov
 
16.12.14
22:26
(11) Понял - массив состоит из одного элемента - ТЗ.
13 b_ru
 
16.12.14
23:39
Отбор = Новый Структура("Качество", Перечисления.Качество.Импорт);
МассивСтрок = Массив[0].НайтиСтроки(Отбор);
Для Каждого Стр из МассивСтрок Цикл
  Стр.Качество = Перечисления.Качество.Новый;
КонецЦикла;


А вообще бред и велосипед.
14 Vladal
 
17.12.14
09:22
(5) 1С разделяет понятия "массив" и "таблица значений" (многомерный массив", Из одномерных массивов есть еще Струтура.
2 + 2 = 3.9999999999999999999999999999999...