По теме из базы знаний
Найденные решения
(27)Нет.
ВЫБРАТЬ
КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК Номенклатура,
КоммерческоеПредложениеКлиентуТовары.Количество КАК Количество,
КоммерческоеПредложениеКлиентуТовары.НовоеНаименование КАК НаимКонтр
ПОМЕСТИТЬ КП
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
ПО (ЗаказКлиента.ДокументОснование = КоммерческоеПредложениеКлиентуТовары.Ссылка)
ГДЕ
ЗаказКлиента.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Выбор
Когда КП.НаимКонтр Есть Null Тогда РесурсныеСпецификацииМатериалыИУслуги.Номенклатура
Когда КП.НаимКонтр <> "" Тогда КП.НаимКонтр
Иначе КП.Номенклатура
Конец КАК Номенклатура,
ЕстьNull(КП.Количество,РесурсныеСпецификацииМатериалыИУслуги.КоличествоУпаковок) КАК Количество
ИЗ
Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК РесурсныеСпецификацииМатериалыИУслуги
ПОЛНОЕ СОЕДИНЕНИЕ КП КАК КП
ПО РесурсныеСпецификацииМатериалыИУслуги.Номенклатура = КП.Номенклатура
И РесурсныеСпецификацииМатериалыИУслуги.Номенклатура.Артикул = КП.Артикул
ГДЕ
РесурсныеСпецификацииМатериалыИУслуги.Ссылка.Основание = &Ссылка
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Полное соединение таблиц по полю Наименование.
Выбирать так:
Выбирать так:
Выбор
Когда ТЧ1.НовоеНаименование Есть Null Тогда ТЧ2.Наименование
Когда ТЧ1.НовоеНаименование <> "" Тогда ТЧ1.НовоеНаименование
Иначе ТЧ1.Наименование
Конец,
ЕстьNull(ТЧ1.Количество,ТЧ2.Количество)
(26) Так?
ВЫБРАТЬ
КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК Номенклатура,
КоммерческоеПредложениеКлиентуТовары.Количество КАК Количество,
КоммерческоеПредложениеКлиентуТовары.НовоеНаименование КАК НаимКонтр
ПОМЕСТИТЬ КП
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
ПО (ЗаказКлиента.ДокументОснование = КоммерческоеПредложениеКлиентуТовары.Ссылка)
ГДЕ
ЗаказКлиента.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА КП.НаимКонтр = ""
ТОГДА КП.Номенклатура
КОГДА КП.НаимКонтр <> ""
ТОГДА КП.НаимКонтр
ИНАЧЕ РесурсныеСпецификацииМатериалыИУслуги.Номенклатура
КОНЕЦ КАК Номенклатура,
ВЫБОР
КОГДА КП.НаимКонтр = ""
ТОГДА КП.Количество
КОГДА КП.НаимКонтр <> ""
ТОГДА КП.Количество
ИНАЧЕ РесурсныеСпецификацииМатериалыИУслуги.КоличествоУпаковок
КОНЕЦ КАК Количество
ИЗ
Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК РесурсныеСпецификацииМатериалыИУслуги
ПОЛНОЕ СОЕДИНЕНИЕ КП КАК КП
ПО РесурсныеСпецификацииМатериалыИУслуги.Номенклатура = КП.Номенклатура
И РесурсныеСпецификацииМатериалыИУслуги.Номенклатура.Артикул = КП.Артикул
ГДЕ
РесурсныеСпецификацииМатериалыИУслуги.Ссылка.Основание = &Ссылка
Показать
(27)Нет.
ВЫБРАТЬ
КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК Номенклатура,
КоммерческоеПредложениеКлиентуТовары.Количество КАК Количество,
КоммерческоеПредложениеКлиентуТовары.НовоеНаименование КАК НаимКонтр
ПОМЕСТИТЬ КП
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
ПО (ЗаказКлиента.ДокументОснование = КоммерческоеПредложениеКлиентуТовары.Ссылка)
ГДЕ
ЗаказКлиента.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Выбор
Когда КП.НаимКонтр Есть Null Тогда РесурсныеСпецификацииМатериалыИУслуги.Номенклатура
Когда КП.НаимКонтр <> "" Тогда КП.НаимКонтр
Иначе КП.Номенклатура
Конец КАК Номенклатура,
ЕстьNull(КП.Количество,РесурсныеСпецификацииМатериалыИУслуги.КоличествоУпаковок) КАК Количество
ИЗ
Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК РесурсныеСпецификацииМатериалыИУслуги
ПОЛНОЕ СОЕДИНЕНИЕ КП КАК КП
ПО РесурсныеСпецификацииМатериалыИУслуги.Номенклатура = КП.Номенклатура
И РесурсныеСпецификацииМатериалыИУслуги.Номенклатура.Артикул = КП.Артикул
ГДЕ
РесурсныеСпецификацииМатериалыИУслуги.Ссылка.Основание = &Ссылка
Показать
Для объединения двух таблиц в запросе на языке программирования 1С, вы можете использовать функцию объединения JOIN. В вашем случае, чтобы подставить новое наименование вместо старого, вы можете использовать операторы CASE WHEN.
Пример запроса на языке программирования 1С может выглядеть следующим образом:
Копировать
ВЫПОЛНИТЬ Запрос;
Этот запрос объединяет две таблицы 1ТЧ и 2ТЧ с помощью внутреннего соединения JOIN, где значения в столбце "Наименование" совпадают. Затем, с помощью оператора CASE WHEN, выбирается новое наименование, если оно заполнено, иначе выбирается старое наименование. Результатом запроса будут две строки, соответствующие вашим требованиям:
Копировать
Наименование | Кол
--------------
123 | 1
нов | 2
З.Ы. Чат гпт
Пример запроса на языке программирования 1С может выглядеть следующим образом:
Копировать
Запрос = Новый Запрос;
Запрос.Текст = "
ВЫБРАТЬ
ТЧ1.НовоеНаименование КАК Наименование,
ТЧ1.Кол
ИЗ
1ТЧ КАК ТЧ1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
2ТЧ КАК ТЧ2
ПО
ТЧ1.Наименование = ТЧ2.Наименование
ГДЕ
ТЧ1.НовоеНаименование <> ЗНАЧЕНИЕ(Справочник.ПустаяСтрока)
ИЛИ
ТЧ2.НовоеНаименование <> ЗНАЧЕНИЕ(Справочник.ПустаяСтрока)
;
ПоказатьВЫПОЛНИТЬ Запрос;
Этот запрос объединяет две таблицы 1ТЧ и 2ТЧ с помощью внутреннего соединения JOIN, где значения в столбце "Наименование" совпадают. Затем, с помощью оператора CASE WHEN, выбирается новое наименование, если оно заполнено, иначе выбирается старое наименование. Результатом запроса будут две строки, соответствующие вашим требованиям:
Копировать
Наименование | Кол
--------------
123 | 1
нов | 2
З.Ы. Чат гпт
(11)
количество беру из первой таблицы. А когда строки добавляю из второй, то количество оттуда.
Основная - это первая таблица, из нее берем все. Потом уже смотрим вторую таблицу и сравниваем с певой, если совпадения есть, то их нафиг. а то, чего нет в первой добавляем
Для вашего пример результат нарисуете?
количество беру из первой таблицы. А когда строки добавляю из второй, то количество оттуда.
Основная - это первая таблица, из нее берем все. Потом уже смотрим вторую таблицу и сравниваем с певой, если совпадения есть, то их нафиг. а то, чего нет в первой добавляем
Что-то типа такого.....
Выбрать
Выбор Когда т.НовоеНаименование <> "" Тогда т.НовоеНаименование Иначе т.Наименование конец как Наименование
,тКол
ИЗ тч1 как т
UNION
Выбрать
Выбор Когда т.НовоеНаименование <> "" Тогда т.НовоеНаименование Иначе т.Наименование конец как Наименование
,тКол
ИЗ тч2 как т
ПоказатьВЫБРАТЬ
КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК Номенклатура,
КоммерческоеПредложениеКлиентуТовары.Номенклатура.Артикул КАК Артикул,
КоммерческоеПредложениеКлиентуТовары.Количество КАК Количество,
КоммерческоеПредложениеКлиентуТовары.Новоенаименование КАК НаимКонтр
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
ПО (ЗаказКлиента.ДокументОснование = КоммерческоеПредложениеКлиентуТовары.Ссылка)
ГДЕ
ЗаказКлиента.Ссылка = &Ссылка
ОБЪЕДИНИТЬ
ВЫБРАТЬ
РесурсныеСпецификацииМатериалыИУслуги.Номенклатура,
РесурсныеСпецификацииМатериалыИУслуги.Номенклатура.Артикул,
РесурсныеСпецификацииМатериалыИУслуги.КоличествоУпаковок,
""
ИЗ
Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК РесурсныеСпецификацииМатериалыИУслуги
ГДЕ
РесурсныеСпецификацииМатериалыИУслуги.Основание = &Ссылка
Показать
(20) А почему примерно не так?:
ВЫБРАТЬ
т.Номенклатура КАК Номенклатура,
т.Номенклатура.Артикул КАК Артикул,
т.Количество КАК Количество,
т.Новоенаименование КАК НаимКонтр
ИЗ
Документ.КоммерческоеПредложениеКлиенту.Товары КАК т
ГДЕ
т.Ссылка В (Выбрать т1.ДокументОснование ИЗ Документ.ЗаказКлиента КАК т1 ГДЕ т1.Ссыдка = &Ссылка)
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот