Имя: Пароль:
1C
1С v8
Выборка данных из табличной части справочника в табличную часть документа
0 Gerrychka
 
01.06.16
17:23
Здравствуйте, помогите с кодом, есть справочник "Договоры" с несколькими реквизитами и табличной частью и есть документ "Расходная накладная" в котором есть реквизит договор с ссылкой на справочник "Договоры", необходимо чтобы в документе, при выборе договора(например Договор 1), который уже создан в справочнике, и заполнена значениями табличная часть,нужно чтобы автоматически заполнялась табличная часть в документе "Расходная Накладная" из этого справочника
1 Nuobu
 
01.06.16
17:27
(0) А что не получается? Отклик на изменение договора есть?
2 lEvGl
 
гуру
01.06.16
17:33
ТЧДокумента.Загрузить(ТЧСправочника.Выгрузить())

но мне кажется, что такая реализация немного неправильная, и еще кажется, что изначальная идея/задача тоже не совсем трезвая
3 lEvGl
 
гуру
01.06.16
17:35
что за тч договора, на основании которой можно заполнить тч накладной? или база самописная?
4 Nuobu
 
01.06.16
17:36
(3) Больше похоже на задачу для Спеца.
Если так, то иди на форум Господина Чистова. http://forum.chistov.pro/
5 aleks_default
 
01.06.16
17:40
(1) не получается заставить себя начать писать буквы...
6 lEvGl
 
гуру
01.06.16
17:42
(4) судя по задаче спец будет не очень) что бы на сертификат спеца такие вопросы были ..
7 Nuobu
 
01.06.16
17:47
(6) Ну, человек только учится. Может, получил тестовое задание от франча, вот и мучается. Глядишь, через год в хорошего Мистянского тролля вырастет.
8 Gerrychka
 
01.06.16
17:47
самописная конфа, такой механизм необходим, подумал что так можно решить с выбором из документа, на самом деле главное чтобы работало, я только создал процедуру при изменении на реквизит договор, расходной накладной и выбрал запросом все необходимые поля из заполненного справочника, что дальше не могу понять

&НаСервере
Процедура ДоговорПриИзмененииНаСервере()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Договоры.СуммаПоДокументу,
        |    Договоры.УсловияПоставок.(
        |        Номенклатура,
        |        Серия,
        |        ЕдиницаИзмерения,
        |        Валюта,
        |        Количество,
        |        Цена,
        |        Сумма
        |    )
        |ИЗ
        |    Справочник.Договоры КАК Договоры";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    
КонецПроцедуры
9 Nuobu
 
01.06.16
17:48
(8) Дальше - заполнять.
НоваяСтрока = Объект.Товары.Добавить();
НоваяСтрока.Номменклатура = ВыборкаДетальныйЗаписи.Номенклатура;
10 lEvGl
 
гуру
01.06.16
17:57
(7) я о том что таких вопросов на сертификат "специалист" не должно быть, слишком просто. Спец это спец, там все веселей.


        |        Номенклатура,
        |        Серия,
        |        ЕдиницаИзмерения,
        |        Валюта,
        |        Количество,
        |        Цена,
        |        Сумма
эти поля скорее всего называются так же как и в тч документа, если так, то достаточно написать как в (2).
Если все таки Запрос, то условие надо на ссылку "Где Договры.Ссылка = &Договор"
Запрос.УстПараметр("Договор", Договор)
Это в ПриИзменении()
11 Gerrychka
 
01.06.16
18:06
условие наверно на ссылку
Договоры.Ссылка = &Ссылка";?
и для каждого элемента из табл части выборку детальные записи сделать? так?
НоваяСтрока = Объект.СписокНоменклатуры.Добавить();
    НоваяСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
    НоваяСтрока.Серия = ВыборкаДетальныеЗаписи.Серия;
    НоваяСтрока.ЕдиницаИзмерения = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;
    НоваяСтрока.Валюта = ВыборкаДетальныеЗаписи.Валюта;
    НоваяСтрока.Количество = ВыборкаДетальныеЗаписи.Количество;
    НоваяСтрока.Цена = ВыборкаДетальныеЗаписи.Цена;
    НоваяСтрока.Сумма = ВыборкаДетальныеЗаписи.Сумма;
и куда вставлять в цикл или за, я в этом слабо понимаю
12 Gerrychka
 
01.06.16
20:25
через консоль запросов запрос все норм выдает, только на параметр договор пишет не определена процедура с таким именем, помогите пожалуйста весь мозг сломал
    
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Договоры.СуммаПоДокументу,
        |    Договоры.УсловияПоставок.(
        |        Номенклатура,
        |        Серия,
        |        ЕдиницаИзмерения,
        |        Валюта,
        |        Количество,
        |        Цена,
        |        Сумма
        |    ),
        |    РасходнаяНакладная.Договор
        |ИЗ
        |    Документ.РасходнаяНакладная КАК РасходнаяНакладная
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
        |        ПО РасходнаяНакладная.Договор = Договоры.Ссылка
        |ГДЕ
        |    Договоры.Ссылка = &Договор";
        
    Запрос.УстановитьПараметр("Договор", Договор);