1. Aspiring_specialist 3 10.06.19 19:18 Сейчас в теме

Как добавить в ТЧ

Подскажите как добавить в ТЧ нового документа Товары из документа основания, которых нет в ТЧ Нового документа?
Вознаграждение за ответ
Показать полностью
Ответы
Избранное Подписка Сортировка: Древо
2. Aspiring_specialist 3 10.06.19 19:23 Сейчас в теме
(1)То есть я заново хочу перебрать документ основания и добавить не достающие товары. Не пойму как написать условие, чтобы отсечь имеющуюся номенклатуру
7. spacecraft 10.06.19 21:37 Сейчас в теме
(1) как-то так:
Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ДокументТовары.Номенклатура КАК Номенклатура
	|ИЗ
	|	Документ.ИмяДокументаОснования.Товары КАК ДокументТовары
	|ГДЕ
	|	ДокументТовары.Ссылка = &Ссылка
	|	И НЕ ДокументТовары.Номенклатура В (&СписокНоменклатуры)";

Запрос.УстановитьПараметр("Ссылка", Объект.Основание);
Запрос.УстановитьПараметр("СписокНоменклатуры", Объект.Товары.ВыгрузитьКолонку("Номенклатура"));
РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
	Стр = Объект.Товары.Добавить();
	Стр.Номенклатура = Выборка.Номенклатура;
КонецЦикла;
Показать
10. Isa816 19 11.06.19 12:55 Сейчас в теме
(7) Такой запрос не поможет если скажем в ТЗ несколько строк с одинаковой номенклатурой, могут быть разные характеристики или серии, а может быть разное обеспечение. Все зависит от того что это за документ и как он менялся в процессе.
Если все очень просто и цены и количество нужно такие же как в документе основания то можно сделать вообще просто.
Док = ТекДокумент.ПолучитьОбъект();
Док.Заполнить(ТекДокумент.Основание);
Док.Записать(РежимЗаписиДокумента.Проведение);
Но такой код перезапишет все данные документа на данные основания

Если все таки что то менялось то простым запросом на отбор номенклатуры не обойдется.
1) Нужно сделать временную таблицу из текущей таблице товаров, свернуть её по по Ном, Хар, Серии, Складу, единице (тут все поля которые моли меняться) так же группировку строк надо добавить ЦЕНУ (по тому что она может быть разной! В сумму группировок поставить Количество
2) Выгрузить таблицу основания в аналогичную таблицу и аналогично свернуть.
3) Добавить эти две таблицы в запрос и сделать левое соединение из документа основания к текущему документу
4) наложить условие ЕСТЬ NULL На ТекущейДокумент.номенклатура (и основные поля)
А так же проверить количество.
Дальше полученный результат в цикле добавить в текущий документ с поиском по таб части (что бы допустим изменить количество)
11. spacecraft 11.06.19 13:10 Сейчас в теме
(10) зачем что-то придумывать к конкретному вопросу?
Есть четкий вопрос: "То есть я заново хочу перебрать документ основания и добавить не достающие товары. Не пойму как написать условие, чтобы отсечь имеющуюся номенклатуру".
Есть четкий ответ в (7).

И где была речь про ТЗ?
12. Isa816 19 11.06.19 14:54 Сейчас в теме
(11) Ну в том то и вопрос, если добавится хоть одно условие из того что я добавил, ваш запрос не будет работать.
3. aka Любитель XML 10.06.19 19:43 Сейчас в теме
Либо запросом, либо используй НайтиСтроки. А зачем добавлять, может заново просто документ заполнить на основании?
4. Aspiring_specialist 3 10.06.19 19:56 Сейчас в теме
(3)У меня товара сначала отобран с расхождениями, а теперь мне нужно еще добавить туда тот товар где нет расхождения, плюс условие, чтобы отсечь товар который уже есть там
5. uno-c 42 10.06.19 21:01 Сейчас в теме
ВыгрузитьКолонку с имеющейся в новом доке номенклатурой в массив, перебрать все строки основания, каждую из номенклатур основания искать в массиве, если не нашел - значит она нужна.
6. Aspiring_specialist 3 10.06.19 21:25 Сейчас в теме
8. uno-c 42 10.06.19 22:25 Сейчас в теме
(6) Смотрите 7. spacecraft, это то, что я имел в виду, даже лучше.
9. acanta 55 10.06.19 22:34 Сейчас в теме
Внешнее соединение двух таблиц?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Бобров
зарплата от 100 000 руб. до 150 000 руб.
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день