Заполнение табличной части по кнопке

1. YA_972282488 22.07.22 10:38 Сейчас в теме
Добрый день всем
Ситуация дурацкая, знаю как делать но не работает запрос
Уж не сильна в них совсем, а книгу по запросам за два дня не прочитать(
Задача со стажировки
Нужно чтобы в документе заказ клиента при нажатии на специальную кнопку (бесплатные товары для клиента) заполнялась автоматически табличная часть (добавлялось 1коробка, 6салфеток и соус чесночный и сырный)
Всё это хранится в номенклатуре справочнике естественно
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
21. dehro 5 22.07.22 20:42 Сейчас в теме
(1) Реквизит "БесплатныйТовар" или что-то в этом роде есть?
Может регистр сведений: цены номеклатуры, а там товар с ценой 0 руб.

Главное не сдавайся: стажировка хороший повод изучить язык запросов за два дня.
Мотивирует-то как!
2. a1ex4ndr 5 22.07.22 10:47 Сейчас в теме
Думаю, если запрос не покажешь, вряд ли кто скажет что с ним не так...
3. aka Любитель XML 22.07.22 11:01 Сейчас в теме
Где определяется состав ТЧ "добавлялось 1коробка, 6салфеток и соус чесночный и сырный"? И да, покажите как пытаетесь
4. user1810885 22.07.22 13:50 Сейчас в теме
(2)
(3)
&НаКлиенте
Процедура ДоставкаПриИзменении(Элемент)
УправлениеРеквизитамиДоставки();
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеРеквизитамиДоставки();
КонецПроцедуры

Процедура УправлениеРеквизитамиДоставки()
Элементы.ИнформацияОДоставке.Видимость = Объект.Доставка;
Элементы.АдресДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.КонтактныйТелефон.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.СлужбаДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.ДатаДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
КонецПроцедуры

&НаСервере
Процедура ДобавитьБесплатныеТоварыНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО ""%Соус чесночный (бокс)%""";

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НовСтр = Объект.СписокТоваров.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр,Выборка);
КонецЦикла; КонецПроцедуры

&НаКлиенте
Процедура ДобавитьБесплатныеТовары(Команда)
ДобавитьБесплатныеТоварыНаСервере();
КонецПроцедуры


а несколько условий не получается поставить
Прикрепленные файлы:
Маленькая Италия 2.0.dt
5. umev 22.07.22 14:33 Сейчас в теме
Получать список бесплатных товаров через ПОДОБНО это бред.
Или для Номенклатуры добавить реквизит Количество бесплатных или хранить список бесплатных товаров в регистре сведений.
6. a1ex4ndr 5 22.07.22 14:39 Сейчас в теме
Ну в запросе подбирать по наименованию товары - так себе идея...
несколько условий в запросе - тут как раз все просто, сама идея - так себе - каждый раз запрос переписывать как поменялся список бесплатного товара, сделай справочник или регистр для наборов, если штатного нет...

а по условиям:
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО ""%Соус чесночный (бокс)%
| ИЛИ Номенклатура.Наименование ПОДОБНО ""%Соус сырный%""";
7. user1810885 22.07.22 14:50 Сейчас в теме
(6)
О ""%Соус чесночный (бокс)%
| ИЛИ Номенклатура.Наименование ПО

так пробовала выдает ошибку. а по поводу создания регистров и справочника ещё задание групповое потом это всё надо объединять и нужно вывозить уже имеющимися объектами в идеале
17. a1ex4ndr 5 22.07.22 16:02 Сейчас в теме
(7) Что за ошибка то?

(16) С таким подходом очень быстро будет добавлен СоусНомерВосемь
20. a1ex4ndr 5 22.07.22 16:13 Сейчас в теме
(7) Я даже не поленился конфигу эту скачать, все там нормально с или - см скрин
Прикрепленные файлы:
8. soft_wind 22.07.22 14:56 Сейчас в теме
всего три команды добавить (можно оформить в процедуру)
&НаСервере
Процедура ДобавитьНабор()

НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодКоробки");
НовСтр .Количество = 1;

НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСалфетки");
НовСтр .Количество = 6;

НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСоуса");
НовСтр .Количество = 1;

КонецПроцедуры;
Показать
9. user1810885 22.07.22 15:29 Сейчас в теме
(8)табличная часть получена из свойства ссылки выдает ошибку товары переменная не найдена
10. aka Любитель XML 22.07.22 15:36 Сейчас в теме
(9) ну так у вас ТЧ называется СписокТоваров, а не Товары. Вам пример привели, а не полностью рабочий код )
11. soft_wind 22.07.22 15:37 Сейчас в теме
(9) ну это же пример, ни кто не знает какие у вас реквизиты, как называется ваша табличная часть и др.
вот доп. команды для получения объекта документа (тоже пример)

&НаСервере
Процедура ДобавитьНабор()

ДокЗаказ = РеквизитФормыВЗначение("Объект");
Товары = ДокЗаказ.Товары;

НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодКоробки");
НовСтр .Количество = 1;

НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСалфетки");
НовСтр .Количество = 6;

НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСоуса");
НовСтр .Количество = 1;

ЗначениеВРеквизитФормы(ДокЗаказ, "Объект");

КонецПроцедуры;
Показать
12. aka Любитель XML 22.07.22 15:39 Сейчас в теме
(11) следующий вопрос будет - номенклатура пустая добавляется :)
14. user1810885 22.07.22 15:43 Сейчас в теме
(12) очень смешно. но по сути то что подсказывают тут испробовано и выдает ошибку
вот что смешно и ржу не могу
13. soft_wind 22.07.22 15:41 Сейчас в теме
15. aka Любитель XML 22.07.22 15:44 Сейчас в теме
(14) показывай какие ошибки у тебя. И скрин формы обработки скинь на всякий случай
16. aka Любитель XML 22.07.22 15:52 Сейчас в теме
Я бы вообще сделал следующим образом - добавил бы РС и из него бы заполнял. Но есть другой вариант - добавить предопределенные значения Справочника, и далее заполнять на клиенте без серверных вызовов, типа так

&НаКлиенте
Процедура ДобавитьНабор()

НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Коробка");
НовСтр .Количество = 1;

НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Салфетка");
НовСтр .Количество = 6;

НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Соус");
НовСтр .Количество = 1;

КонецПроцедуры;


Где предопределенные добавлены в конфигураторе (Коробка, Салфетка, Соус)
18. aka Любитель XML 22.07.22 16:03 Сейчас в теме
(17) да я тоже обеими руками за РС, просто предложил решение попроще для уровня автора
19. aka Любитель XML 22.07.22 16:04 Сейчас в теме
(17) уж всяко лучше "Подобно" и НайтиПоНаименованию или НайтиПоКоду, тут хотя бы на изменении данных не будет обработка падать
Оставьте свое сообщение

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