Имя: Пароль:
1C
1С v8
Существует ли в 1с косвенная адресация?
0 Storm03
 
08.07.19
09:54
Не крутой спец по 1С.
Есть ТЗ, в которой Номенклатура, Контрагент, Склад и остатки.
Необходимо в зависимости от Контрагента и Склада распихать строки по разным документам ВводОстатковНоменклатуры.

Что-то типа:
Контрагенты = Новый Массив;
Склады = Новый Массив;
Нов = 0;
Стр = ТЗ.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл
Если Найти(Контрагенты, Стр.Контрагент) = Неопределено Тогда
     Контрагенты.Вставить(Стр.Контрагент);
     Нов = 1;
КонецЕсли;
Если Найти(Склады, Стр.Склад) = Неопределено Тогда
     Склады.Вставить(Стр.Склад);
     Нов = 1;
КонецЕсли;
//////////// А вот дальше то, что мне нужно, но в фантазиях:
Индекс = Найти(Контрагенты, Стр.Контрагент) + "_" + Найти(Склады, Стр.Склад);
Если Нов = 1 Тогда
     Док+Индекс = Документы.ВводОстатковНоменклатуры.СоздатьДокумент();
КонецЕсли;
////////// Заполняем ТекСтр ...
Док+Индекс.ТЧ.Вставить(ТекСтр);

Ну, как-то так...
1 Cyberhawk
 
08.07.19
09:56
Нет
2 dka80
 
08.07.19
09:58
Док = Новый Массив;

Док[Индекс] = Документы.ВводОстатковНоменклатуры.СоздатьДокумент();
3 dka80
 
08.07.19
09:59
точнее
Док.Добавить(Документы.ВводОстатковНоменклатуры.СоздатьДокумент())
4 Кирпич
 
08.07.19
10:04
Для складов и контрагентов догадался создать массив, а для документов чота вдруг осенило какой то косвенной адресацией.
5 Storm03
 
08.07.19
10:11
Ага, значит, массив документов создать можно? Ок, это поможет! Всем спасибо!))))
6 Кирпич
 
08.07.19
10:13
(5) лучше соответствие создай. и ключ чтобы был Склад+Контрагент
7 Storm03
 
08.07.19
10:39
(6) А что, 1С ещё и ассоциативные массивы поддерживает? Офигеть!
8 Кирпич
 
08.07.19
10:50
(7) см. раздел "Универсальные коллекции значений"
9 Salimbek
 
08.07.19
11:09
Нахрена это вот все? Сортируешь выборку и в обходе - как поменялось Склад+Контрагент - записываешь текущий документ и создаешь новый.
11 Storm03
 
09.07.19
12:49
(9) Это было б зашибись, если б было бы так просто. В обработке нужно перетасовывать товар по другим складам. Какие-то объединять, какие-то разделять.
12 Salimbek
 
09.07.19
14:30
(11) Дык, создавай колонку новую в ТЗ и перетасовывай, как перетасуешь - сортируй  и далее (9)
13 Salimbek
 
09.07.19
14:32
+(12) Хотя, тебе на месте виднее, может действительно удобнее все обходить. Я лишь предложил один из вариантов.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший