По теме из базы знаний
- Управление торговлей: Как использовать "Универсальный отчет" в корыстных целях.
- Как устроена регламентированная отчетность в 1С
- За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С
- Новичок новичку: как добавить программно кнопку на форму путем расширения
- Как я с отчетом СКД боролся (произвольный макет)!
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) как-то так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДокументТовары.Номенклатура КАК Номенклатура
|ИЗ
| Документ.ИмяДокументаОснования.Товары КАК ДокументТовары
|ГДЕ
| ДокументТовары.Ссылка = &Ссылка
| И НЕ ДокументТовары.Номенклатура В (&СписокНоменклатуры)";
Запрос.УстановитьПараметр("Ссылка", Объект.Основание);
Запрос.УстановитьПараметр("СписокНоменклатуры", Объект.Товары.ВыгрузитьКолонку("Номенклатура"));
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Стр = Объект.Товары.Добавить();
Стр.Номенклатура = Выборка.Номенклатура;
КонецЦикла;
Показать
(7) Такой запрос не поможет если скажем в ТЗ несколько строк с одинаковой номенклатурой, могут быть разные характеристики или серии, а может быть разное обеспечение. Все зависит от того что это за документ и как он менялся в процессе.
Если все очень просто и цены и количество нужно такие же как в документе основания то можно сделать вообще просто.
Док = ТекДокумент.ПолучитьОбъект();
Док.Заполнить(ТекДокумент.Основание);
Док.Записать(РежимЗаписиДокумента.Проведение);
Но такой код перезапишет все данные документа на данные основания
Если все таки что то менялось то простым запросом на отбор номенклатуры не обойдется.
1) Нужно сделать временную таблицу из текущей таблице товаров, свернуть её по по Ном, Хар, Серии, Складу, единице (тут все поля которые моли меняться) так же группировку строк надо добавить ЦЕНУ (по тому что она может быть разной! В сумму группировок поставить Количество
2) Выгрузить таблицу основания в аналогичную таблицу и аналогично свернуть.
3) Добавить эти две таблицы в запрос и сделать левое соединение из документа основания к текущему документу
4) наложить условие ЕСТЬ NULL На ТекущейДокумент.номенклатура (и основные поля)
А так же проверить количество.
Дальше полученный результат в цикле добавить в текущий документ с поиском по таб части (что бы допустим изменить количество)
Если все очень просто и цены и количество нужно такие же как в документе основания то можно сделать вообще просто.
Док = ТекДокумент.ПолучитьОбъект();
Док.Заполнить(ТекДокумент.Основание);
Док.Записать(РежимЗаписиДокумента.Проведение);
Но такой код перезапишет все данные документа на данные основания
Если все таки что то менялось то простым запросом на отбор номенклатуры не обойдется.
1) Нужно сделать временную таблицу из текущей таблице товаров, свернуть её по по Ном, Хар, Серии, Складу, единице (тут все поля которые моли меняться) так же группировку строк надо добавить ЦЕНУ (по тому что она может быть разной! В сумму группировок поставить Количество
2) Выгрузить таблицу основания в аналогичную таблицу и аналогично свернуть.
3) Добавить эти две таблицы в запрос и сделать левое соединение из документа основания к текущему документу
4) наложить условие ЕСТЬ NULL На ТекущейДокумент.номенклатура (и основные поля)
А так же проверить количество.
Дальше полученный результат в цикле добавить в текущий документ с поиском по таб части (что бы допустим изменить количество)
(10) зачем что-то придумывать к конкретному вопросу?
Есть четкий вопрос: "То есть я заново хочу перебрать документ основания и добавить не достающие товары. Не пойму как написать условие, чтобы отсечь имеющуюся номенклатуру".
Есть четкий ответ в (7).
И где была речь про ТЗ?
Есть четкий вопрос: "То есть я заново хочу перебрать документ основания и добавить не достающие товары. Не пойму как написать условие, чтобы отсечь имеющуюся номенклатуру".
Есть четкий ответ в (7).
И где была речь про ТЗ?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот