Имя: Пароль:
1C
 
Получить данные из ТЧ в цикле
🠗 (Волшебник 10.01.2024 08:50)
,
0 Вадим_1c
 
10.01.24
07:46
Помогите пожалуйста, легкая задача, что-то не могу придумать ничего.

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПередачаТоваров.ВидОперации КАК ВидОперации,
		|	ПередачаТоваров.Ссылка КАК Ссылка,
		|	ПередачаТоваровТовары.Цена КАК Цена
		|ИЗ
		|	Документ.ПередачаТоваров.Товары КАК ПередачаТоваровТовары
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПередачаТоваров КАК ПередачаТоваров
		|		ПО ПередачаТоваровТовары.Ссылка = ПередачаТоваров.Ссылка
		|ГДЕ
		|	ПередачаТоваров.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПередачаТоваров.БезвозмезднаяПередача)
		|	И ПередачаТоваров.Товары.Цена = 1";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
				
		ДокументОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
		ТчТовары = ДокументОбъект.Товары;													   
		
	КонецЦикла;


Нужно из ТЧ "Товары", обращаться к полю "Цена" и заменять его на какое-то значение, условно "100", а вот как обратиться я не понимаю
1 Волшебник
 
10.01.24
07:45
В запросе сгруппируйте по документам, чтобы не записывать несколько раз один и тот же документ.
2 RomaH
 
naïve
10.01.24
07:50
НомерСтроки нужен

тчТовары[ВыборкаДетальные.НомерСтроки-1].Цена = ...
3 RomaH
 
naïve
10.01.24
07:51
ну и там блокировки - а то пока вы читали пользователь отсортировал ТЧ и записал док
4 RomaH
 
naïve
10.01.24
07:52
или найти "подходящие" документы
а строки уже через "НайтиСтроки" искать
5 Вадим_1c
 
10.01.24
08:15
не помогло (2)
6 RomaH
 
naïve
10.01.24
08:18
(5) покаж
7 Вадим_1c
 
10.01.24
08:23
(6) Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                
        ДокументОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        ТчТовары = ДокументОбъект.Товары;
        Сообщить(ТчТовары[ВыборкаДетальныеЗаписи.НомерСтроки-1].Цена);
        
    КонецЦикла;

Я наверное не так пишу, я просто вывести хотел посмотреть, что будет, но там ошибка, что нет поля НомерСтроки.
8 Вадим_1c
 
10.01.24
08:24
как сделать в принципе обращение к полю Цена, не просто прочитать, а именно обратиться и чтобы поменять можно было
9 Табуретко
 
10.01.24
08:36
ДокументОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();

Для каждого Стр из ДокументОбъект.Товары Цикл

Стр.Цена = 100;
Стр.Сумма = Стр.Цена * Стр.Количество;

КонецЦикла;

ДокументОбъект.Записать();
10 Волшебник
 
10.01.24
08:41
(7) в запрос не добавили
11 Вадим_1c
 
10.01.24
08:45
(9) СПАСИБО!
12 Волшебник
 
10.01.24
09:28
(11) Вам позор...
13 Буковка
 
10.01.24
09:32
(12) это же не внимательность, частая проблема новичков. Всё впереди у него.
14 Волшебник
 
10.01.24
11:45
(13) Это глупость, противоположность программированию.