Добрый день всем
Ситуация дурацкая, знаю как делать но не работает запрос
Уж не сильна в них совсем, а книгу по запросам за два дня не прочитать(
Задача со стажировки
Нужно чтобы в документе заказ клиента при нажатии на специальную кнопку (бесплатные товары для клиента) заполнялась автоматически табличная часть (добавлялось 1коробка, 6салфеток и соус чесночный и сырный)
Всё это хранится в номенклатуре справочнике естественно
Ситуация дурацкая, знаю как делать но не работает запрос
Уж не сильна в них совсем, а книгу по запросам за два дня не прочитать(
Задача со стажировки
Нужно чтобы в документе заказ клиента при нажатии на специальную кнопку (бесплатные товары для клиента) заполнялась автоматически табличная часть (добавлялось 1коробка, 6салфеток и соус чесночный и сырный)
Всё это хранится в номенклатуре справочнике естественно
По теме из базы знаний
- Создание справочников "Номенклатура" и "Номенклатура поставщика" из внешнего файла, электронной таблицы с заполнением табличной части "Товары" документов закупки (ERP 2.4, 2.5, КА 2.4, 2.5, УТ 11)
- Заполнение табличной части документа "Реализация товаров и услуг" по документу "Приобретение товаров и услуг" для ERP 2.4, ERP 2.5, КА 2.4, КА 2.5, УТ 11.4, УТ 11.5
- Заполнение табличной части Оплаты в документе Авансовый отчет по приходным накладным в УНФ
- Заполнение табличной части авансовых счетов-фактур номенклатурой из последующих продаж
- Заполнение документа "Премия" из файла Excel (Табельный номер + Сумма премии) с использованием внешней обработки заполнения табличной части и расширения. ЗУП 3.1
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
(3)
&НаКлиенте
Процедура ДоставкаПриИзменении(Элемент)
УправлениеРеквизитамиДоставки();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеРеквизитамиДоставки();
КонецПроцедуры
Процедура УправлениеРеквизитамиДоставки()
Элементы.ИнформацияОДоставке.Видимость = Объект.Доставка;
Элементы.АдресДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.КонтактныйТелефон.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.СлужбаДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.ДатаДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
КонецПроцедуры
&НаСервере
Процедура ДобавитьБесплатныеТоварыНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО ""%Соус чесночный (бокс)%""";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НовСтр = Объект.СписокТоваров.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр,Выборка);
КонецЦикла; КонецПроцедуры
&НаКлиенте
Процедура ДобавитьБесплатныеТовары(Команда)
ДобавитьБесплатныеТоварыНаСервере();
КонецПроцедуры
а несколько условий не получается поставить
(3)
&НаКлиенте
Процедура ДоставкаПриИзменении(Элемент)
УправлениеРеквизитамиДоставки();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеРеквизитамиДоставки();
КонецПроцедуры
Процедура УправлениеРеквизитамиДоставки()
Элементы.ИнформацияОДоставке.Видимость = Объект.Доставка;
Элементы.АдресДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.КонтактныйТелефон.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.СлужбаДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
Элементы.ДатаДоставки.АвтоОтметкаНезаполненного = Объект.Доставка;
КонецПроцедуры
&НаСервере
Процедура ДобавитьБесплатныеТоварыНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО ""%Соус чесночный (бокс)%""";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НовСтр = Объект.СписокТоваров.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр,Выборка);
КонецЦикла; КонецПроцедуры
&НаКлиенте
Процедура ДобавитьБесплатныеТовары(Команда)
ДобавитьБесплатныеТоварыНаСервере();
КонецПроцедуры
а несколько условий не получается поставить
Прикрепленные файлы:
Маленькая Италия 2.0.dt
Ну в запросе подбирать по наименованию товары - так себе идея...
несколько условий в запросе - тут как раз все просто, сама идея - так себе - каждый раз запрос переписывать как поменялся список бесплатного товара, сделай справочник или регистр для наборов, если штатного нет...
а по условиям:
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО ""%Соус чесночный (бокс)%
| ИЛИ Номенклатура.Наименование ПОДОБНО ""%Соус сырный%""";
несколько условий в запросе - тут как раз все просто, сама идея - так себе - каждый раз запрос переписывать как поменялся список бесплатного товара, сделай справочник или регистр для наборов, если штатного нет...
а по условиям:
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО ""%Соус чесночный (бокс)%
| ИЛИ Номенклатура.Наименование ПОДОБНО ""%Соус сырный%""";
всего три команды добавить (можно оформить в процедуру)
&НаСервере
Процедура ДобавитьНабор()
НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодКоробки");
НовСтр .Количество = 1;
НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСалфетки");
НовСтр .Количество = 6;
НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСоуса");
НовСтр .Количество = 1;
КонецПроцедуры;
Показать
(9) ну это же пример, ни кто не знает какие у вас реквизиты, как называется ваша табличная часть и др.
вот доп. команды для получения объекта документа (тоже пример)
вот доп. команды для получения объекта документа (тоже пример)
&НаСервере
Процедура ДобавитьНабор()
ДокЗаказ = РеквизитФормыВЗначение("Объект");
Товары = ДокЗаказ.Товары;
НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодКоробки");
НовСтр .Количество = 1;
НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСалфетки");
НовСтр .Количество = 6;
НовСтр = Товары.Добавить();
НовСтр .Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КодСоуса");
НовСтр .Количество = 1;
ЗначениеВРеквизитФормы(ДокЗаказ, "Объект");
КонецПроцедуры;
Показать
Я бы вообще сделал следующим образом - добавил бы РС и из него бы заполнял. Но есть другой вариант - добавить предопределенные значения Справочника, и далее заполнять на клиенте без серверных вызовов, типа так
&НаКлиенте
Процедура ДобавитьНабор()
НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Коробка");
НовСтр .Количество = 1;
НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Салфетка");
НовСтр .Количество = 6;
НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Соус");
НовСтр .Количество = 1;
КонецПроцедуры;
Где предопределенные добавлены в конфигураторе (Коробка, Салфетка, Соус)
&НаКлиенте
Процедура ДобавитьНабор()
НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Коробка");
НовСтр .Количество = 1;
НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Салфетка");
НовСтр .Количество = 6;
НовСтр = Объект.СписокТоваров.Добавить();
НовСтр .Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.Соус");
НовСтр .Количество = 1;
КонецПроцедуры;
Где предопределенные добавлены в конфигураторе (Коробка, Салфетка, Соус)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот