Есть документ с таблицой внутри, нужно сменить цены авто. Конфа Ут
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| УстановкаЦенНоменклатурыТовары.Ссылка,
| УстановкаЦенНоменклатурыТовары.НомерСтроки,
| УстановкаЦенНоменклатурыТовары.Номенклатура,
| УстановкаЦенНоменклатурыТовары.Характеристика,
| УстановкаЦенНоменклатурыТовары.ВидЦены,
| УстановкаЦенНоменклатурыТовары.Ссылка.Номер КАК Номер,
| УстановкаЦенНоменклатурыТовары.Цена
| ИЗ
| Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
|ГДЕ
| УстановкаЦенНоменклатурыТовары.Ссылка.Дата = &Дата
| И УстановкаЦенНоменклатурыТовары.Ссылка.Номер = &Номер";
Запрос.УстановитьПараметр("Дата", Объект.Дата);
Запрос.УстановитьПараметр("Номер", Объект.Номер);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Док =Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру(Выборка.Номер);
Док = Док.Ссылка.ПолучитьОбъект();
Для Каждого Строка из Док Цикл
Если Строка.Товары.Цена = 418 тогда
Строка.Товары.Цена = 510
КонецЕсли;
КонецЦикла;
КонецЦикла;
Док.Записать();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| УстановкаЦенНоменклатурыТовары.Ссылка,
| УстановкаЦенНоменклатурыТовары.НомерСтроки,
| УстановкаЦенНоменклатурыТовары.Номенклатура,
| УстановкаЦенНоменклатурыТовары.Характеристика,
| УстановкаЦенНоменклатурыТовары.ВидЦены,
| УстановкаЦенНоменклатурыТовары.Ссылка.Номер КАК Номер,
| УстановкаЦенНоменклатурыТовары.Цена
| ИЗ
| Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
|ГДЕ
| УстановкаЦенНоменклатурыТовары.Ссылка.Дата = &Дата
| И УстановкаЦенНоменклатурыТовары.Ссылка.Номер = &Номер";
Запрос.УстановитьПараметр("Дата", Объект.Дата);
Запрос.УстановитьПараметр("Номер", Объект.Номер);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Док =Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру(Выборка.Номер);
Док =Документы.УстановкаЦенНоменклатуры.ПолучитьСсылку();
Док = Док.ПолучитьОбъект();
Для Каждого Строка из Док Цикл
Если Строка.Товары.Цена = 418 тогда
Строка.Товары.Цена = 510
КонецЕсли;
КонецЦикла;
КонецЦикла;
Док.Записать();
burza @ Сегодня, 13:22
,
вот так сделал, с начало чет тупанул, можно же без запроса)
Док =Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру(Объект.Номер);
Док =Документы.УстановкаЦенНоменклатуры.ПолучитьСсылку();
Док = Док.ПолучитьОбъект();
Для Каждого Строка из Док.Товары Цикл
Если Строка.Цена = 418 тогда
Строка.Цена = 510
КонецЕсли;
КонецЦикла;
Док.Записать();
burza @ Today, 15:05
,
В чем сложность в отладчике проверить чему равно "Док" в цикле?
Док = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру(Объект.Номер, Дата("20170101"));
Vofka @ Сегодня, 15:25
,
Объект не найдет((
burza @ Сегодня, 15:28
,
Получается я не могу получить обьект? как исправить?
burza @ Today, 15:28
,
Ну посмотрите на свой код. Вы сначала присвоили ссылку, потом присвоили пустую ссылку...
Petre @ Сегодня, 15:49
,
ну так помогиТЕ как нужно) прошу напишите.
! | http://pro1c.org.ua/index.php?act=announce&id=2: 1 |
Ссылка = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру(Объект.Номер, Дата("20170101"));
Док = Ссылка.ПолучитьОбъект();
В контексте ФормыДокумента получать ССылку на этот же документ через поиск по номеру объекта?
Правильней было бы создать реквизит обработки например с именем "СсылкаНаДок" с типом "ДокументСсылка.УстановкаЦенНоменклатуры", а не "Номер" и "Дата". И у Вас был бы код
Док = Объект.СсылкаНаДок.ПолучитьОбъект();
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua