Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Получение реквизитов одного документа для другого
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
r1p88@mail.ru
Добрый день. Конфигурация 1С: Управление Торговлей для Украины.
Суть вопроса в следующем: есть документы "заказ поставщику" и "поступление товаров и услуг". В документе "поступление товаров и услуг" указывается на основании какого "заказа поставщику" был сделан документ. Я пытаюсь добавить в форму списка "заказ поставщику" колонку "Фактическое поступление". То есть дата проведения "поступления товаров и услуг". Но не могу понять каким образом сделать так, чтобы если у "заказа поставщику" есть по структуре "поступление", то в списке документов в ячейку "Фактическое поступление" проставить нужную дату(дату проведения поступления). Подскажите пожалуйста каким образом можно добиться данного результата?
logist
Элемент ДокументСписок, событии ПриВыводеСтроки заполнять это поле нужной датой. Запрос даты думаю сами соберете?
r1p88@mail.ru
Цитата(logist @ 28.04.15, 16:02) необходимо зарегистрироваться для просмотра ссылки
Элемент ДокументСписок, событии ПриВыводеСтроки заполнять это поле нужной датой. Запрос даты думаю сами соберете?


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

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

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл              
    ЭтаФорма.ЭлементыФормы.Список.Колонки.ФактическоеПоступление = ВыборкаДетальныеЗаписи.Дата;        
КонецЦикла;


Набросал такой вариант. Но ничего не добавляет.
logist
Цитата(r1p88@mail.ru @ 28.04.15, 17:05) необходимо зарегистрироваться для просмотра ссылки
Но ничего не добавляет.

Разумеется, посмотрите на свой код и подумайте, будет ли он что-то добавлять, в событии "при выводе СТРОКИ" wink.gif
p.s. позже напишу пример.

Как-то так, собрано "на коленке", поэтому требовать тупо работу этого кода не стоит, это пример:
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Запрос = Новый Запрос("ВЫБРАТЬ
    |    ПоступлениеТоваровУслуг.Дата
    |ИЗ
    |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    |    ПоступлениеТоваровУслуг.Сделка = &Сделка
    |    И ПоступлениеТоваровУслуг.Проведен = ИСТИНА");
    Запрос.УстановитьПараметр("Сделка", ДанныеСтроки.Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        ОформлениеСтроки.Ячейки.НазваниеПоляСДатой.ОтображатьТекст = Истина;
        ОформлениеСтроки.Ячейки.НазваниеПоляСДатой.Текст = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy")
    КонецЕсли;
КонецПроцедуры
r1p88@mail.ru
Цитата(logist @ 28.04.15, 17:32) необходимо зарегистрироваться для просмотра ссылки
Разумеется, посмотрите на свой код и подумайте, будет ли он что-то добавлять, в событии "при выводе СТРОКИ" wink.gif
p.s. позже напишу пример.

Как-то так, собрано "на коленке", поэтому требовать тупо работу этого кода не стоит, это пример:
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Запрос = Новый Запрос("ВЫБРАТЬ
    |    ПоступлениеТоваровУслуг.Дата
    |ИЗ
    |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    |    ПоступлениеТоваровУслуг.Сделка = &Сделка
    |    И ПоступлениеТоваровУслуг.Проведен = ИСТИНА");
    Запрос.УстановитьПараметр("Сделка", ДанныеСтроки.Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        ОформлениеСтроки.Ячейки.НазваниеПоляСДатой.ОтображатьТекст = Истина;
        ОформлениеСтроки.Ячейки.НазваниеПоляСДатой.Текст = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy")
    КонецЕсли;
КонецПроцедуры



Спасибо за помощь. Работает. Плюсую за помощь. В завершении есть пару вопросов:
1. Почему данный код необходимо вставлять в обработчик "при выводе строки"? Почему не в "при получении данных"? Производительность вроде же будет лучше?
2. В запросах не силён (пока). Не совсем понимаю где в запросе связь с заказом поставщику. По параметру?
3. Не проверял. Но в обработчике " при получении данных" тоже значение будет присвоено через "ОформлениеСтроки.Ячейки"?
logist
Цитата(r1p88@mail.ru @ 28.04.15, 17:46) необходимо зарегистрироваться для просмотра ссылки
Не совсем понимаю где в запросе связь с заказом поставщику.

ПоступлениеТоваровУслуг.Сделка = &Сделка

Насчет использования события, хз, если считаете "вроде же будет лучше" - делайте, я Вам пример кода дал, а там уже сами решайте что использовать. Разумеется ПриПолученииДанных этот код работать не будет, т.к. там получается сразу весь "массив" данных, а не построчно.
r1p88@mail.ru
Спасибо за ответы. Тему можно закрывать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.