Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 сен 2021, 06:19

Как найти документ по нужному товару в его табличной части? Строка в ТЧ одна.

Автор ToryFree, 20 июл 2020, 12:06

0 Пользователей и 1 гость просматривают эту тему.

ToryFree

Вопрос от новичка в 8.3).
Как правильно написать запрос, чтобы найти документ определенного вида (Розница 3.2, документ УстановкаЦенНоменклатуры), в табличной части которого есть единственная строка с установкой розничной цены нужного товара?

LexaK

не надо искать документ Установка цены! (а если он помечен на удаление, или не проведен, или их несколько, или еще чего)
установленную этим документом цену, надо брать из Регистра Цены номенклатуры (как он там у вас называется)!

используйте правильный подход к применению механизмов 1С!!! 
ответ Понравился? (в смысле пригодился?)

ToryFree

Цитата: LexaK от 20 июл 2020, 13:53
не надо искать документ Установка цены! (а если он помечен на удаление, или не проведен, или их несколько, или еще чего)
установленную этим документом цену, надо брать из Регистра Цены номенклатуры (как он там у вас называется)!

используйте правильный подход к применению механизмов 1С!!!

Задача состоит не в том, чтобы найти цену, установленную этим документом, а в том, чтобы найти программно  созданный проведенный документ, в котором устанавливалась цена для конкретного товара.

Для справки: общая задача - программно пометить на удаление программно же созданный товар-комплект и убрать все, к нему относящееся,тоже созданное программно).
Это:
пометить на удаление документы СборкаТоваров для этого товара-комплекта и УстановкаЦенНоменклатуры (в нем устанавливается розничная цена только этого товара - комплекта);
удалить запись по штрихкоду этого товара в регистре сведений Штрихкоды (один штрихкод),
удалить записи по комплектующим этого товара-комплекта в регистре сведений КомплектующиеНоменклатуры.

Сборку найти легко, в ней товар-комплект в шапке.

А Установку цен мне пока непонятно, как искать, в ней товар-комплект (Номенклатура) в табличной части Товары. Значит, нужен запрос или пакет запросов, чтобы найти в табличных частях Установки цен нужный товар, и получить ссылку на сам документ, чтобы пометить его на удаление. Документов таких море. Нужные созданы программно, у них в комментарии стоит "Создан обработкой такой-то".

Еще путь - делать эти документы на основании Сборки, это поиск упростит. Но пытаюсь максимально щадить текущую структуру базы).
Как написать запрос?

LexaK

запрос к табличной части, примерно так


//Запрос - шаблон
лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать Различные
| Док.Ссылка как УстановкаЦен
|из
Документ.УстановкаЦенНоменклатуры Док //сам документ
|Левое соединение
Документ.УстановкаЦенНоменклатуры.Товары ДокТЧ //его ТЧ
| по Док.Ссылка = ДокТЧ.Ссыдка
|Где
| Не Док.ПометкаУдаления //кроме помеченных на удаление
ДокТЧ.Номенклатура = &Ссылка
|";
лкЗапрос.УстановитьПараметр("Ссылка", ВашаНоменклатура);

лкВыборка = лкЗапрос.Выполнить().Выбрать();
Пока лкВыборка.Следующий() Цикл
//лкВыборка.УстановкаЦен - ссылка на документ
КонецЦикла;
ответ Понравился? (в смысле пригодился?)

ToryFree

Цитата: LexaK от 20 июл 2020, 18:38
запрос к табличной части, примерно так


//Запрос - шаблон
лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать Различные
| Док.Ссылка как УстановкаЦен
|из
Документ.УстановкаЦенНоменклатуры Док //сам документ
|Левое соединение
Документ.УстановкаЦенНоменклатуры.Товары ДокТЧ //его ТЧ
| по Док.Ссылка = ДокТЧ.Ссыдка
|Где
| Не Док.ПометкаУдаления //кроме помеченных на удаление
ДокТЧ.Номенклатура = &Ссылка
|";
лкЗапрос.УстановитьПараметр("Ссылка", ВашаНоменклатура);

лкВыборка = лкЗапрос.Выполнить().Выбрать();
Пока лкВыборка.Следующий() Цикл
//лкВыборка.УстановкаЦен - ссылка на документ
КонецЦикла;

Вот теперь то, что надо!) Спасибо большое!))) Я уже начала подбираться, но конструктор сделал левое соединение в обратную сторону).
Учусь быстро, но изучить надо очень много, поэтому порой торможу на том, что для сегодняшнего программиста - ученический уровень). Еще раз - большое спасибо за помощь!!!)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск