Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Июн 2018, 02:13
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как заполнить пустые ячейки в табличной части результатом запроса.  (Прочитано 2872 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн llirik_87

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-24
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте!
Помогите, пожалуйста, в таком вопросе:
У меня есть ТабличнаяЧасть1, которая заполняется результатом Запроса:
АртикулОригинальныйНОМЕРПроизводитель
333A0007201335
ATT7213A0007201335AutoTechteile
96205-010096205-0100GERMANY
ATT5016A9015051655AutoTechteile
111A9015050655
ATT5016A9015051655TEXTAR

Далее мне нужно как-то найти все строки в полученной таблице, в которых в ячейке Производитель пусто. И заполнить их данными из Справочника "Наличие", на основании данных из таблицы из ячейки Артикул . Справочник Наличие состоит из двух реквизитов"АртикулНаличие" и "Бренд". Берем значение из Бренд и подставляем в ячейку "Производитель" в ТабличнуюЧасть1.

Например, у меня пустой Производитель в первой строке:
находим пустую ячейку Производитель (1 строка) - берем значение из колонки Артикул ( 333 ) - идем в Справочник "Наличие" :
АртикулНаличиеБренд
333Satilit
ATT5016AutoTechteile

Далее, берем данные из реквизита "Бренд"  где "АртикулНаличие"  =  333, т.е. получим Satilit  и подставляем в первую строку ЧабличнаяЧасть1 в ячейку "Производитель". Получаем:
АртикулОригинальныйНОМЕРПроизводитель
333A0007201335Satilit
ATT7213A0007201335AutoTechteile
96205-010096205-0100GERMANY
ATT5016A9015051655AutoTechteile
111A9015050655
ATT5016A9015051655TEXTAR

Подскажите,пожалуйста, как это сделать?


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
1. Обходим таблицу, получаем массив артикулов с пустым Производитель плюс получаем массив таких строк
2. запросом к справочнику Наличие получаем пары Артикул-Производитель, складываем в соответствие
3. обходим массив строк из п.1 и по Артикулу достаем из соответствия Производителя
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
А зачем вообще выгружать первый запрос в таб часть, чтобы потом тр***ся,эээ заниматься сэксом, пытаясь дозаполнить пустую колонку? Делайте сразу полное заполнение в первом запросе.

Оффлайн llirik_87

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-24
  • Сайт: 
  • Профессия: Ученик 1С
1. Обходим таблицу, получаем массив артикулов с пустым Производитель плюс получаем массив таких строк
2. запросом к справочнику Наличие получаем пары Артикул-Производитель, складываем в соответствие
3. обходим массив строк из п.1 и по Артикулу достаем из соответствия Производителя

Здравствуйте!
 я не смог,к сожалению, это сделать. Можете,пожалуйста, привести код?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
я бы прислушался на самом деле к vitasw
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
я не смог,к сожалению, это сделать. Можете,пожалуйста, привести код?

Ну, как бы, неплохо бы увидеть ваш первоначальный запрос. и конечная цель задания?

Оффлайн llirik_87

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-24
  • Сайт: 
  • Профессия: Ученик 1С
я не смог,к сожалению, это сделать. Можете,пожалуйста, привести код?

Ну, как бы, неплохо бы увидеть ваш первоначальный запрос. и конечная цель задания?

Просто там такой многоэтажный запрос, что я не могу дописать его так, чтобы заполнялось все запросе. Но приведу текст:
	Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
   | ОригинальныеЗапчасти.МаркаАвто,
   | ОригинальныеЗапчасти.МодельАвто,
   | ОригинальныеЗапчасти.ГруппаЗапчастей,
   | ОригинальныеЗапчасти.Подгруппа,
   | ОригинальныеЗапчасти.ДопПараметры,
   | ОригинальныеЗапчасти.БазаНомер,
   | t3.Примечание,
   | ОригинальныеЗапчасти.РасширенноеПрименение,
   | ОригинальныеЗапчасти.ДополнительноеОписание,
   | t3.Артикул КАК Артикул,
   | t3.БрендСтандарт КАК БрендСтандарт,
   | t3.Количество КАК Количество,
   | t3.Цена КАК Цена,
   | t3.Поставщик КАК Поставщик,
   | t3.Валюта КАК Валюта,
   | ЕСТЬNULL(ОригинальныеЗапчасти.БазаНомер, ""Нет"") КАК БазовыйНомер
   |ИЗ
   | (ВЫБРАТЬ
   | t2.НаличиеКод КАК НаличиеКод,
   | t2.Наименование КАК Наименование,
   | t2.Артикул КАК Артикул,
   | t2.Производитель КАК Производитель,
   | t2.Количество КАК Количество,
   | t2.Цена КАК Цена,
   | t2.Поставщик КАК Поставщик,
   |    t2.Валюта КАК Валюта,
   | t2.INDстандарт КАК INDстандарт,
   | t2.БрендСтандарт КАК БрендСтандарт,
   |     t2.Примечание как Примечание,
   | t2.ОригинальныйНомер КАК ОригинальныйНомер,
   | сон.Ссылка КАК Ссылка,
   | сон.ПометкаУдаления КАК ПометкаУдаления,
   | сон.Предопределенный КАК Предопределенный,
   | сон.Код КАК Код,
   | сон.Наименование КАК Наименование1,
   | сон.ОригинальныйНомер1 КАК ОригинальныйНомер1,
   | сон.ОригинальныйНомер2 КАК ОригинальныйНомер2,
   | сон.ОригинальныйНомер3 КАК ОригинальныйНомер3,
   | сон.ОригинальныйНомер4 КАК ОригинальныйНомер4,
   | сон.ОригинальныйНомер5 КАК ОригинальныйНомер5
   | ИЗ
   | (ВЫБРАТЬ
   | t1.НаличиеКод КАК НаличиеКод,
   | t1.Наименование КАК Наименование,
   | t1.Артикул КАК Артикул,
   | t1.Производитель КАК Производитель,
   | t1.Количество КАК Количество,
   | t1.Цена КАК Цена,
   | t1.Поставщик КАК Поставщик,
   | t1.Валюта КАК Валюта,
   | t1.INDстандарт КАК INDстандарт,
   | t1.БрендСтандарт КАК БрендСтандарт,
   |         Заменители.Примечание как Примечание,
   | Заменители.ОригинальныйНомер КАК ОригинальныйНомер
   | ИЗ
   | (ВЫБРАТЬ
   | НаличиеСклада.Код КАК НаличиеКод,
   | НаличиеСклада.Наименование КАК Наименование,
   | НаличиеСклада.Артикул КАК Артикул,
   | НаличиеСклада.Производитель КАК Производитель,
   | НаличиеСклада.Количество КАК Количество,
   | НаличиеСклада.Цена КАК Цена,
   | НаличиеСклада.Поставщик КАК Поставщик,
   | НаличиеСклада.Валюта КАК Валюта,
   | Соответствия.INDстандарт КАК INDстандарт,
   | Соответствия.БрендСтандарт КАК БрендСтандарт
   | ИЗ
   | Справочник.НаличиеСклада КАК НаличиеСклада
   | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Соответствия КАК Соответствия
   | ПО (НаличиеСклада.Артикул = Соответствия.INDисходный)
   | И (НаличиеСклада.Производитель = Соответствия.БрендИсходный)) КАК t1
   | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Заменители КАК Заменители
   | ПО (Заменители.Артикул = t1.Артикул
   | И Заменители.Производитель = t1.Производитель
   | ИЛИ Заменители.Артикул = t1.INDстандарт
   | И Заменители.Производитель = t1.БрендСтандарт)) КАК t2
   | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоответствияОригинал КАК сон
   | ПО (t2.ОригинальныйНомер В (сон.ОригинальныйНомер1, сон.ОригинальныйНомер2, сон.ОригинальныйНомер3, сон.ОригинальныйНомер4, сон.ОригинальныйНомер5))) КАК t3
   | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОригинальныеЗапчасти КАК ОригинальныеЗапчасти
   | ПО (ОригинальныеЗапчасти.БазаНомер В (t3.ОригинальныйНомер, t3.ОригинальныйНомер1, t3.ОригинальныйНомер2, t3.ОригинальныйНомер3, t3.ОригинальныйНомер4, t3.ОригинальныйНомер5))
   |ГДЕ
   | ОригинальныеЗапчасти.БазаНомер ЕСТЬ НЕ NULL
   |
   |СГРУППИРОВАТЬ ПО
   | ОригинальныеЗапчасти.МаркаАвто,
   | ОригинальныеЗапчасти.МодельАвто,
   | ОригинальныеЗапчасти.Подгруппа,
   | ОригинальныеЗапчасти.ГруппаЗапчастей,
   | ОригинальныеЗапчасти.ДопПараметры,
   | ОригинальныеЗапчасти.БазаНомер,
   | t3.Примечание,
   | ОригинальныеЗапчасти.РасширенноеПрименение,
   | ОригинальныеЗапчасти.ДополнительноеОписание,
   | t3.Артикул,
   | t3.БрендСтандарт,
   | t3.Количество,
   | t3.Цена,
   | t3.Поставщик,
   |    t3.Валюта";


Результат=Запрос.Выполнить();
ТабличнаяЧасть1.Загрузить(Результат.Выгрузить());

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Ничего сложного цевляйте левым соединением артикулы к основной таблице, к таблице артикулов, опять же левым соединением таблицу брендов

Оффлайн llirik_87

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-24
  • Сайт: 
  • Профессия: Ученик 1С
Ничего сложного цевляйте левым соединением артикулы к основной таблице, к таблице артикулов, опять же левым соединением таблицу брендов
Спасибо за помощь!  Я уже методом проб дописал запрос , так что б, как Вы и говорили, заполнялось все сразу. Очень не уверен что получилось оптимально, но вроде работает)

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
В подавляющем большинстве случаев запрос работает быстрее чем функционал, выполняемый без запроса.


Теги:
 

"Уникальность" строки таблиной части документа

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2402
Последний ответ 20 Авг 2014, 12:22
от has
Работа с табличной частью в документе. Или Работа с ШАПКОЙ документа

Автор gorbach178500Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3356
Последний ответ 30 Сен 2011, 20:01
от gorbach178500
"ПОДОБНО" в условие связи запроса

Автор Станиславъ ЗверевъРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 4354
Последний ответ 11 Май 2016, 15:29
от LexaK
"Таблица значений" в результате запроса - 1С

Автор mvk843Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 1417
Последний ответ 15 Июн 2017, 07:53
от mvk843
Возможно ли языком запросов без конкатенации текста запроса и без СКД преобразовать строки таблицы в столбцы (колонки) выходной таблицы?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 720
Последний ответ 29 Май 2017, 15:29
от alex0402

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

AIFrame AIFrame
125 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
123 Сообщений
alexandr_ll
61 Сообщений
pavl_vs
47 Сообщений
alex0402
28 Сообщений
buketov.av buketov.av
24 Сообщений
magnifico61
21 Сообщений
wise wise
20 Сообщений
ilyay ilyay
15 Сообщений
trialex3
15 Сообщений

* Кто онлайн

  • Точка Гостей: 212
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal