Вывести розничную цену на печатную форму

1. Joker2705 5 08.07.21 16:40 Сейчас в теме
Добрый день! Есть УТ 11.4. Пробую написать внешнюю печатную форму. Задача следующая: Есть документ Поступление товаров, нужно что бы из этого документа можно было распечатать накладную в Розничных ценах, при том, что сам документ заполняется в закупочных. Есть несколько магазинов (Условно маг1, маг2 и маг3), соответственно, поступление делается на определенный магазин. Подскажите, как мне узнать розничную цену этого товара (который в накладной), которая именно в том магазине, на который делается поступление.
Я примерно представляю, что нужно считать имя магазина (склада) из накладной, посмотреть, какая розничная цена стоит на этом магазине, посмотреть в номенклатуре цену по этому виду цен и вывести все это в печатную форму.
Вопрос только в том, какими командами это сделать и как правильно построить запрос?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3088 08.07.21 16:50 Сейчас в теме
Нужно написать запрос, в котором таблицу с товарами соединить с регистром цен номенклатуры - виртуальная таблица среза последних по дате документа. Внутри отфильтровать по типу цены (если для каждого магазина есть отдельный тип цен, то подставить именно его).

Как-то так.

Дальше результат запроса уже выгрузить в печатную форму.
3. Joker2705 5 08.07.21 16:54 Сейчас в теме
(2) Это я понимаю, но у меня очень скудные знания языка программирования 1С. Можете помочь с написанием этой функции?
4. starik-2005 3088 08.07.21 17:24 Сейчас в теме
Так разместите в тендерах - Вам быстро помогут, т.к. задача небольшая. Ну или в личку, но я дорого беру.
5. Joker2705 5 09.07.21 09:11 Сейчас в теме
(4)Не вариант. так я сам ничего не пойму.
6. starik-2005 3088 09.07.21 10:15 Сейчас в теме
(5) с таким подходом дороже)))
7. Joker2705 5 09.07.21 12:36 Сейчас в теме
(6)А Вы сможете мне это написать? И какова цена вопроса?
8. starik-2005 3088 09.07.21 13:34 Сейчас в теме
9. Joker2705 5 09.07.21 15:09 Сейчас в теме
(8)Добавьте в друзья. Не могу написать в ЛС.
10. starik-2005 3088 09.07.21 15:19 Сейчас в теме
(9) Добавил. Как стало все сложно (((
11. пользователь 09.07.21 17:23
Сообщение было скрыто модератором.
...
12. Joker2705 5 09.07.21 17:24 Сейчас в теме
(10)Все равно не могу написать в ЛС. Напишете мне в ВК id tiapkin
13. пользователь 10.07.21 13:46
Сообщение было скрыто модератором.
...
14. daenur1301 10.07.21 16:05 Сейчас в теме
(1)
как мне узнать розничную цену этого товара (который в накладной), которая именно в том магазине, на который делается поступление.

Получить из регистра сведений ЦеныНоменклатуры.

(1)
Я примерно представляю, что нужно считать имя магазина (склада) из накладной, посмотреть, какая розничная цена стоит на этом магазине, посмотреть в номенклатуре цену по этому виду цен и вывести все это в печатную форму.
Вопрос только в том, какими командами это сделать и как правильно построить запрос?

У вас целая конфигурация УТ под глазами - лучший учебник, смотрите как реализовано в ней. Для каждого документа есть процедуры получения данных для печати, обычно они находятся в менеджере документа, реже в общих модулях и обработках. Например, можете посмотреть: СписаниеНедостачТоваровЛокализация.ПолучитьДанныеДляПечатнойФормыТОРГ16() или Документ.ИнвентаризационнаяОпись.ПолучитьДанныеДокумента(). В них есть получение цен номенклатуры по указанному в документе виду цен.
15. Joker2705 5 10.07.21 16:12 Сейчас в теме
Почти сделал, осталось только вывести это все в печатную форму, но в колонке с Розничной Ценой пишется "Структура" вместо цен, вот код, который я написал:

ОбластьДанных  = Макет.ПолучитьОбласть("СтрокаТаблицы|Данные");
ОбластьДанных.Параметры.Заполнить(ВыборкаПоТоварам);
Отбор = Новый Структура;
Отбор.Вставить("Номенклатура", ВыборкаПоТоварам.ТоварНаименованиеПолное);
Отбор.Вставить("ВидЦены", ДанныеПечати.Склад.РозничныйВидЦены);
ЦенаРозничная = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(ТекущаяДата(), Отбор);
            
СтруктураДанныхЦенаРоз = Новый Структура;
СтруктураДанныхЦенаРоз.Вставить("ЦенаРозничная", ЦенаРозничная);
ОбластьДанных.Параметры.Заполнить(СтруктураДанныхЦенаРоз);
            
ТабличныйДокумент.Присоединить(ОбластьДанных);
Показать



Подскажите, что не так?
16. daenur1301 10.07.21 16:23 Сейчас в теме
(15) Метод регистра сведений ПолучитьПоследнее() возвращает структуру с ресурсами записи, их три, в т.ч. Цена.
СтруктураРесурсов = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(ТекущаяДата(), Отбор);
ЦенаРозничная = СтруктураРесурсов.Цена;
17. daenur1301 10.07.21 16:27 Сейчас в теме
(15) Если уж решили цену получать по каждой строке отдельно, то лучше будет использовать функцию
ПродажиСервер.ПолучитьЦенуПоОтбору(ПараметрыОтбора)
18. Joker2705 5 10.07.21 16:35 Сейчас в теме
делал вот так

Отбор = Новый Структура;
Отбор.Вставить("Номенклатура", ВыборкаПоТоварам.ТоварНаименованиеПолное);
Отбор.Вставить("ВидЦены", ДанныеПечати.Склад.РозничныйВидЦены);
СтруктураРесурсов = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(ТекущаяДата(), Отбор);
ЦенаРозничная = СтруктураРесурсов.Цена;
			
СтруктураДанныхЦенаРоз = Новый Структура;
СтруктураДанныхЦенаРоз.Вставить("ЦенаРозничная", ЦенаРозничная);
ОбластьДанных.Параметры.Заполнить(СтруктураДанныхЦенаРоз);
Показать


теперь вообще не выводится, пустая колонка

А про это
ПродажиСервер.ПолучитьЦенуПоОтбору(ПараметрыОтбора)

я ничего не знаю
19. daenur1301 10.07.21 16:43 Сейчас в теме
(18)
теперь вообще не выводится, пустая колонка

1. Номенклатура в отборе должна быть ссылкой на элемент справочника, а не названием этого элемента, там скорее всего должно быть ВыборкаПоТоварам.Номенклатура
2. У регистра сведений есть ещё измерение Характеристика, его значение так же должно быть установлено в отборе, чтото типа ВыборкаПоТоварам.Характеристика
20. Joker2705 5 10.07.21 16:47 Сейчас в теме
(19)Дааа, ура, все появилось

Отбор = Новый Структура;
Отбор.Вставить("Номенклатура", ВыборкаПоТоварам.Номенклатура);
Отбор.Вставить("Характеристика", ВыборкаПоТоварам.Характеристика);
Отбор.Вставить("ВидЦены", ДанныеПечати.Склад.РозничныйВидЦены);
СтруктураРесурсов = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(ТекущаяДата(), Отбор);
ЦенаРозничная = СтруктураРесурсов.Цена;
			
СтруктураДанныхЦенаРоз = Новый Структура;
СтруктураДанныхЦенаРоз.Вставить("ЦенаРозничная", ЦенаРозничная);
ОбластьДанных.Параметры.Заполнить(СтруктураДанныхЦенаРоз);
Показать


теперь пойду дальше воевать, по принцип уже понятен))))

СПАСИБО огромное
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот