Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 12:33

Добавление новой колонки в ФОРМЕ СПИСКА у документа

Автор kox, 19 ноя 2011, 09:52

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

kox

Нужно в форме списка вывести новую колонку в которой будет содержаться документ который введен на основании данного. Я получил этот документ, но теперь не могу его вывести в новую колонку.
Во вложенном файле есть скрин списка, мне нужно в колонку "отчет производства" вывести наименование документа. Сам документ я получаю с помощью запроса, все работает, но я не могу вывести его в саму колонку, подскажите как это сделать!???

kox

Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
ОбщегоНазначения.РучнаяКорректировкаСписокПриПолученииДанных(ОформленияСтрок);


Запрос= Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
|КАС_ЗаказНаПроизводство.Ссылка КАК Ссылка2,
|ОтчетПроизводстваЗаСмену.Ссылка КАК Ссылка1,
|ОтчетПроизводстваЗаСмену.ДокументОснование
|ИЗ
|Документ.ОтчетПроизводстваЗаСмену КАК ОтчетПроизводстваЗаСмену
|ЛЕВОЕ СОЕДИНЕНИЕ Документ.КАС_ЗаказНаПроизводство КАК КАС_ЗаказНаПроизводство
|ПО ОтчетПроизводстваЗаСмену.ДокументОснование = КАС_ЗаказНаПроизводство.Ссылка
|ГДЕ
|КАС_ЗаказНаПроизводство.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Элемент.ТекущаяСтрока.Ссылка);
Результат=Запрос.Выполнить();
Выборка=Результат.Выбрать();

//ВОТ ТАК У МЕНЯ
// теперь в выборке у меня есть нужный документ, а вот как его вывести???
//И вообще в верной ли я процедуре начал эти действия

КонецПроцедуры // ДокументСписокПриПолученииДанных

Dethmontt

Так нельзя!!!!
Запрос будет исполняться столько раз сколько строк с Табличной части + соединение 2х таблиц, ваще ЖЕСТЬ!!!.
Что за конфигурация???
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

kox

Конфигурация управление торговым предприятием.
Ну почему же не правильно? ЗАпрос будет искать каждый раз по каждому Элемент.ТекущаяСтрока.Ссылка.
А как посоветуете сделать?
Вообщем надо чтобы в форме списка выводлась графа, где будет указано был ли создан  документ ОТЧЕТ ПРОИЗВОДСТВА ЗА СМЕНУ, который создается на основаниии данного документа( Форму списка которого мы смотрим)
Посоветуйте где и как это лучше сделать?

BabySG

Цитата: Dethmontt от 19 ноя 2011, 11:52
Так нельзя!!!!
Запрос будет исполняться столько раз сколько строк с Табличной части + соединение 2х таблиц, ваще ЖЕСТЬ!!!.
Ничего подобного - запрос выполниться один раз для ПОЛУЧАЕМЫХ строк.
Это не событие для каждой строки, даже в названии написано.

Цитата: kox от 19 ноя 2011, 11:58
А как посоветуете сделать?
Вообщем надо чтобы в форме списка выводлась графа, где будет указано был ли создан  документ ОТЧЕТ ПРОИЗВОДСТВА ЗА СМЕНУ, который создается на основаниии данного документа( Форму списка которого мы смотрим)
Посоветуйте где и как это лучше сделать?
http://www.1c-pro.ru/index.php?showtopic=10706&st=0&p=26320&#entry26320

Dethmontt

ЦитироватьНичего подобного - запрос выполниться один раз для ПОЛУЧАЕМЫХ строк.

Это событие вазавается при изменении размера формы списка
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Самый оптимальный вариант, это прикрутить реквизит к документу и заполнять его при создании второго документа.
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

BabySG

Цитата: Dethmontt от 20 ноя 2011, 14:14
ЦитироватьНичего подобного - запрос выполниться один раз для ПОЛУЧАЕМЫХ строк.
Это событие вазавается при изменении размера формы списка
Это и есть получаемые строки, а не все.

Цитата: Dethmontt от 20 ноя 2011, 14:21
Самый оптимальный вариант, это прикрутить реквизит к документу и заполнять его при создании второго документа.
Ничего оптимального в этом нет. Без надобности в момент записи одного объекта менять состояние другого - это методологически неверно (неговоря уже о других проблемах)
Тогда уж надо писать в РС.

fokas

ПриПолученииДанных(ОформленияСтрок)

ОформленияСтрок - коллекция из элементов "ОформлениеСтроки". Заполнить "Ответственный" можно так:


Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
   ОформлениеСтроки.Ячейки.Ответственный.Значение = Ответственный;
КонецЦикла


Но ничего хорошего в многочисленных запросах нет. Лучше получить данные одним запросом и уже с ними работать. Я когда в первый раз столкнулся с подобным, у меня запросы выполнялись в итоге минуты 2-3. Выгрузив нужное пачкой и самостоятельно уже обрабатывая данные, задача выполнялась секунд за 5

fokas

Мне вообще не нравится работа, что через ПриПолученииДанных, что через ПриВыводеСтроки. Они вызываются с истерической частотой :) Но у динамических списков работа со строками ограниченная и обновляются они на ходу - заполненная дополнительная информация быстро устаревает

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск