Имя: Пароль:
1C
1С v8
Как вывести в журнале документов графу из справочника?
0 Босечка
 
28.03.17
16:37
Как вывести в журнале документов графу из справочника? Есть справочник ОригиналыДокументов, в котором есть реквизиты Документ и Оригинал. И есть журнал документов "Реализация". Надо в нем вывести колонку из справочника, которая соответствует данному документу.
В какой функции это выводится и как?
Запрос примерно так выглядит:

     "ВЫБРАТЬ
     |    ОригиналыДокументов.Документ,
     |    ОригиналыДокументов.Оригинал,
     |    РеализацияТоваров.Ссылка
     |ИЗ
     |    Справочник.ОригиналыДокументов КАК ОригиналыДокументов
     |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваров КАК РеализацияТоваров
     |        ПО ОригиналыДокументов.Документ = РеализацияТоваров.Ссылка"
1 novichok79
 
28.03.17
16:39
формы управляемые или нет?
в управляемых - реквизит дин. списка достаешь, в обычных в событии списка получитьданные или при выводе строки.
2 Босечка
 
28.03.17
16:40
обычные, а запрос как сделать?
3 Босечка
 
28.03.17
16:47
ап..
4 novichok79
 
28.03.17
16:51
(2) при получении данных списком получаешь данные из ссылок, которые находятся в данныхстроки. потом соответственно устанавливаешь эти значения в колонки в том же обработчике. дальше объяснять не буду, примеров в типовых уйма.
5 Босечка
 
28.03.17
16:58
А где примеры есть в каких конфигурациях?
6 novichok79
 
28.03.17
16:59
(5) например установка артикула и кода в табличной части документов товародвижений в УТ 10.3
7 Босечка
 
28.03.17
17:36
мДок = Новый Массив;

Для каждого Оформление Из ОформленияСтрок Цикл


мДок.Добавить(Оформление.ДанныеСтроки.Ссылка);

КонецЦикла;

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


Результат = Запрос.Выполнить().Выгрузить();
Результат.ВыбратьСтроку(); в итоге все виснет....
8 Vaflya
 
28.03.17
18:04
интересно, что Результат.Количество() покажет. И логика не понятна  - почему Выбрать(), если надо весь список заполнить.
Если правильно понимаю задачу, то надо еще в цикле запрос делать и там же, на каждой итерации, заполнять нужную ячейку значением, но там Текст кажется будет, ссылка не пойдет, хотя проверить надо. Ну и традиционно нельзя не сказать про запросы и сложные вычисления в ПриПолученииДанных - это событие отрабатывает при каждом "движении" списка, хотя нагрузка и меньше, чем ПриВыводеСтроки
9 Босечка
 
28.03.17
18:29
мДок = Новый Массив;
соотв = Новый Соответствие;

Для каждого Оформление Из ОформленияСтрок Цикл
  мДок.Добавить(Оформление.ДанныеСтроки.Ссылка);
  соотв[Оформление.ДанныеСтроки.Ссылка] = Оформление;
КонецЦикла;

Запрос= новый Запрос("ВЫБРАТЬ
|    ОригиналыДокументов.Документ
|ИЗ
|    Справочник.ОригиналыДокументов КАК ОригиналыДокументов
|ГДЕ
|    ОригиналыДокументов.Документ В(&ТекДок) И ОригиналыДокументов.Оригинал");
Запрос.УстановитьПараметр("ТекДок", мДок);

выб = Запрос.Выполнить().Выбрать();
Пока выб.Следующий() Цикл
  соотв[выб.Ссылка].Ячейки.Оригинал.УстановитьФлажок(Истина);
КонецЦикла;

вот все решение