Имя: Пароль:
1C
1C 7.7
v7: Перебор табличной части "товары" - 7.7
🠗Ø (Волшебник 04.01.2025 14:36)
,
0 Маленький Вопросик
 
04.01.25
12:31
Товарищи, здравствуйте!

Прошу подсказать дилетанту:

Запросом я выгрузил в "таблицу" "шапку" документа

ТЗДок1.НоваяСтрока();
ТЗДок1.Ссылка = Запрос.ЗаявкаПокупателя;
ТЗДок1.Инфа1  = Запрос.Контрагент;
ТЗДок1.Инфа2  = Запрос.СуммаСумма;
ТЗДок1.Инфа3  = Запрос.СуммаНДССумма;

теперь, я хочу по каждой строке "ссылке" - получить список номенклатуры в табличной части документа:

Прошу подсказать как это сделать) - я так понимаю, нужно получить документ по ссылке в строке таблицы


Спасибо. Примерчик бы кто привел. Речь идет от 7.7

Всех с 2025!
1 Волшебник
 
04.01.25
12:33
А что дилетанты в 2025 году делают в семёрке?!
2 Волшебник
 
04.01.25
12:33
Ну кроме того, что создают безумные поля "Инфа1-3"...
3 Злоп
 
04.01.25
12:39
Док = создатьобъект("документ. Заявкапокупателя");
Док. НайтиДокумент(запрос. Заявкапокупателя);
Док. Выбратьстроки();
Пока дома. Получитьстроку()=1 цикл
4 Злоп
 
04.01.25
12:41
И тащить зпросом контрагента и суммы и прочие реквизиты шапки особого смысла не имеет ибо практически двойное чтение данных, т.к. ты все равно получаешь весь объект для перебора строк, а раз объект получен то и контрагента и суммы с него тянуть можно
5 Маленький Вопросик
 
04.01.25
12:42
Ребята, отбой...

        ДокТЗ=СоздатьОбъект("Документ");
        ДокТЗ.ВыбратьДокументы(ТЗДок1.Ссылка);
        
        Если ДокТЗ.ПолучитьДокумент() = 1 Тогда
            
             ДокТЗ.ВыбратьСтроки();
            
             Пока ДокТЗ.ПолучитьСтроку() = 1 Цикл
                       
                 Сообщить(ДокТЗ.Номенклатура);
                 Сообщить(ДокТЗ.Количество);    
                 
             КонецЦикла;    
            
        КонецЕсли;
6 Злоп
 
04.01.25
12:43
Если уже тянешь запросом доки то и ТЧ запросом тяни нужные реквизиты из тч.
7 Маленький Вопросик
 
04.01.25
12:43
(1) не поверишь, больше некому... сам сижу пока время есть - ковыряюсь...

(3) вот так не взлетело, нужно именно выбрать документы (ссылка) - как я понял....
8 Маленький Вопросик
 
04.01.25
12:44
ну а так да, всем спасибо - вопрос закрыт!
9 Злоп
 
04.01.25
12:44
(5) хрень полная
10 Злоп
 
04.01.25
12:46
(7) что у тебя по (3) не взлетело? Ссылка на заявку у тебя - единственная, нахрена выбрать документы...
11 Маленький Вопросик
 
04.01.25
12:46
(9) документ и строки в 7-ке - это одна табличная часть или несколько? или на документ полагается 2 таблицы - шапка и строки?
12 Злоп
 
04.01.25
12:49
Плюс к этому
Количество с тч необязательно в базовых единицах, поэтому
КоличествоБЕ = док.Количество * док. Коэффициент
13 Злоп
 
04.01.25
12:49
(11) для работы с платформой тебя это не должно интересовать
14 AAA
 
04.01.25
12:51
(11)Каждый документ это -
1 - запись в журнале
2 - таблица шапки
3 - таблица табличной части (если есть у вида документа)
15 Злоп
 
04.01.25
12:52
DT тч
DH - шапка
При этом в зависимости от граф журналов и общих реквизитов данные по шапке и в других таблицах может хранитьсч
16 Злоп
 
04.01.25
12:54
Продолжаем по (12)
Сумма по документу как итог ТЧ соответствующего реквизита может включать или не включать ндс - зависит от реквизита шапки регулирующего входит или не входит ндс в сумму
17 Злоп
 
04.01.25
12:56
Если валюта документа совпадает с валютой договора то полную сумму по документу можно взять из реквизита шапки СуммаВзаиморассетов
18 Маленький Вопросик
 
04.01.25
13:00
(16) в этом плане в 8-ке ничего не изменилось
19 AAA
 
04.01.25
13:02
(18)в 8-ке несколько табличных частей, а в 7.7 одна, это разве не изменение ?
20 maxab72
 
04.01.25
13:03
на старом сайте мисты были учебники по семерке для самых начинающих.
21 Маленький Вопросик
 
04.01.25
13:09
(20) - на самом деле задача не тривиальная для "новичка" - необходимо выгрузить выбранные документы в ТЗ, а от туда в json с подмассивами табличных частей...

собственно я ее уже сделал, поэтому тему можно закрыть!
22 Волшебник
 
04.01.25
13:21
(20) https://old.mista.ru/tutor_1c/index.htm

(21) И правильно. Хватит дурдома

Кстати, пишется "оттуда"
23 MWWRuza
 
гуру
04.01.25
13:31
(9) Почему хрень?
Там все в принципе почти все верно, только не как обработка запроса, а как самостоятельная обработка получения нужного...
Кроме этого: "ДокТЗ.ВыбратьДокументы(ТЗДок1.Ссылка);"
У метода "ВыбратьДокументы" параметры "ДатаНачала" и "ДатаОкончания" периода выборки документов. Или дата, или документ. Если "констркукция в скобках" - "ТЗДок1.Ссылка" это ссылка на документ, полученная из запроса, то будут выбраны все документы этого вида, начинающиеся с него и по последний документ в системе.
Только не понятен смысл этого, зачем такие сложности, что этим хотите добиться?
24 AAA
 
04.01.25
13:58
(21)так выгружайте в ТЗ требуемые ссылки, а затем уже будете формировать файл JSON обходя ТЗ и для ее каждой строки формировать товарную часть документа в JSON
Может придется вытащить ТЗ в диалог с флажком.
Задача нетривиальная для Ваших знаний )
25 MWWRuza
 
гуру
04.01.25
14:08
+(23)(24) могу предположить, что запросом отбираются не все документы за период, а по какому-то хитрому условию в самом запросе...
Тогда, самый простой вариант, в (24).
Хотя, тут тоже варианты - можно и в том-же запросе получить нужное, оставив условие на выборку документов и добавив обход табличных частей отдельной группировкой запроса, а можно и обходить в выборке в цикле ТЧ нужных доков, не выгружая в ТЗ, прямо из перебора результата запроса... Хотя, с ТЗ - самый простой и "наглядный" вариант, проще отладить.
27 Маленький Вопросик
 
04.01.25
14:29
Есть еще один момент: Подскажите функцию по обработке спец-символов?
28 Маленький Вопросик
 
04.01.25
14:30
(25) - да-да, галочкой в ТЗ отмечает пользователь.. что выгружать а что нет
29 Волшебник
 
04.01.25
14:36
(21) готово