Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: v7: Как программно создать документ

Пытаюсь создать документ. Код:
//***************

Процедура Сформировать()
Док=СоздатьОбъект("Документ.СписаниеТМЦ");
фирмы=СоздатьОбъект("Справочник.Фирмы");
склад=СоздатьОбъект("Справочник.Склады");
Прод=СоздатьОбъект("Справочник.Номенклатура");
Док.Новый();     
фирмы.НайтиПоКоду("00003");           
склад.НайтиПоКоду("00004"); 
Прод.НайтиПоКоду("41835");
Док.фирма =фирмы.текущийэлемент();
Док.склад=склад.текущийэлемент(); 
Док.НоваяСтрока();
Док.Номенклатура=Прод.текущийэлемент(); 
Док.Количество=10;
Док.Записать(); 
КонецПроцедуры
//***************

В журнале документов появляется нечто похожее на списание. Но у документа в журнале нет названия. Когда открываешь документ, в поле заголовка системы написано: ...[.не проведен*]. А должно быть: ...[Списание ТМЦ(розница).не проведен*]. Этот документ не проводится: "Не заполнен реквизит "Валюта документа". Документ не проводится!". Что не так?
Ответ: () ну
Вопрос: По результату запроса создать документы

Есть запрос, приблизительно такой

ВЫБРАТЬ первые 100
    Адреса.Ссылка КАК АдресДоставки,
    Адреса.Владелец КАК Контрагент,
    Адреса.Договор.Организация КАК Организация,
ИЗ
    Справочник.АдресаДоставки КАК Адреса

Нужно по результату этого запроса создать документы одного вида и вывести созданные документы в таблицу на форме. Я делаю так:

Выборка = Запрос.Выполнить().Выбрать();
    
Пока Выборка.Следующий() Цикл
    Док = Документы.УниверсальныйДокумент.СоздатьДокумент();
    ЗаполнитьЗначенияСвойств(Док, Выборка);
    Док.Записать(РежимЗаписиДокумента.Проведение);
    ЗаписьТаблицы = Объект.Документы.Добавить();
    ЗаполнитьЗначенияСвойств(ЗаписьТаблицы, Док);
КонецЦикла;

Говорят: коряво.
Как можно иначе?
Ответ: Как-то странно. Куда записи деваются? Короче: шеф не прочитал код, который в цикле. Он решил что я там проверяю условия. Я молодец. Всем спасибо. Тема закрыта.
Вопрос: 1С ЕРП 2.2 Непонятное поведение процедуры печати в созданном документе

Здравствуйте! Столкнулся со следующей проблемой. Есть две базы одна тестовая (файловая) другая - боевая (SQL). В базах создан документ, в модуле менеджера прописана процедура Печать():

Процедура
///////////////////////////////

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода,Ссылка) Экспорт
    
    //Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаявкаНаВОС") Тогда


        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм, 
            "ЗаявкаНаВОС",
            НСтр("ru = 'ЗаявкаНаВОС'"),
            ЗаявкаНаВОС(МассивОбъектов, ОбъектыПечати));
        
    //КонецЕсли;

    //

    //Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаявкаНаЗакупкуВКитае") Тогда


        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм, 
            "ЗаявкаНаЗакупкуВКитае",
            НСтр("ru = 'ЗаявкаНаВОС '"),
            Печать1(МассивОбъектов, ОбъектыПечати));
        
        //КонецЕсли;

        
КонецПроцедуры


Права на документ выставлены. Вопрос в следующем: При работе в Тестовой (файловой) базе все работет нормально, а вот при переносе с тестовой конфы на SQL при первом открытии формы списка документа выдает:

//////////////////////////


Ошибка//

///////////////////////////


{Документ.ЗаявкаНаПерезакупку.МодульМенеджера(40,3)}: Переменная не определена (УправлениеПечатью)
        <<?>>УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
{Документ.ЗаявкаНаПерезакупку.МодульМенеджера(50,3)}: Переменная не определена (УправлениеПечатью)
        <<?>>УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(

При втором открытии и далее все работает нормально. Уже всю голову сломал куда копать подскажите?
Ответ: () Мы все знаем что у тебя супер секретный спец релиз
Вопрос: Создать документ, заполнить и открыть без записи

Начинаю программировать на 8.3 после 7.7. Установили 1С 8.3 пока без сервера, файловая база используется. С 7.7 документ Заказ покупателя сохранён в mxl, в 8.3 нужно прочитать это и создать документ Заказ покупателя с данными из mxl.
Написал такой код:

ДокОбъект = Документы.ЗаказПокупателя.СоздатьДокумент();
ДокОбъект.Дата = ТекущаяДата();
Для Строка_=19 По ТабДок.ВысотаТаблицы Цикл
НоваяСтрок = ДокОбъект.Товары.Добавить();
НоваяСтрок.Количество = 10;
НоваяСтрок.Цена = 55;
КонецЦикла;

Чтение файла в Табличную часть ТабДок опустил, также опустил заполнение строк из ТабДок, тут просто цифры указал. Далее не записываю, просто хочу форму документа Заказ покупателя с заполненными строками открыть для просмотра, правильно ли там всё заполнено. Никак не получается, пробовал разные варианты, выдаются ошибки. В формах есть ФормаДокумента, так понимаю, что его нужно открыть с табличной частью Товары. Но как это сделать правильно?
Ответ:
ДокОбъект.ПолучитьФорму().Открыть();
Вопрос: Не могу создать документ "Реализация товаров и услуг" на основании заказа клиента

Доброго времени суток.

В конфигурации Управление торговлей для Украины, редакция 3.1 (3.1.6.1), при попытке создать документ "Реализация товаров и услуг" на основании заказа клиента система выдает следующую ошибку:
"Нет товаров, доступных для отгрузки. Для начала процесса отгрузки необходимо указать действие "Отгрузить" в списке товаров для отгружаемых позиций номенклатуры".

При этом, в таблице товара , колонка "Действие" указано - "Отгрузить". Статус документа - "К выполнению". Товар на остатке есть, на основании данного заказа был создан заказ поставщику, после - Поступление ТиУ, заказ поставщику закрыт. Подскажите, в чем может быть проблема ? Спасибо.
Ответ: () Попробовал, не помогло.
Вопрос: Выделение цветом строк Табчасти при открытии формы программно созданного документа

Добрый день! Помогите пожалуйста разобраться, программно создал документ, при открытии на табличной части "Товары" необходимо закрасить строки по определенному условию, но в отладчике нигде не вижу свойства "ОформлениеСтроки". Можно ли закрасить строки программно?
1C
1
2
3
4
5
6
7
8
9
10
11
12
            НовыйРТИУ = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
            НовыйРТИУ.Дата = НовыйДокСчет.Дата;
            НовыйРТИУ.Заполнить(НовыйДокСчет.Ссылка);
            НовыйРТИУ.Сделка = НовыйДокСчет.Ссылка;
            НовыйРТИУ.Записать(РежимЗаписиДокумента.Запись);
            Форма = НовыйРТИУ.ПолучитьФорму();
                
            Для Каждого Строка Из Форма.ЭлементыФормы.Товары.Значение Цикл
                    
            КонецЦикла;
 
Форма.Открыть();
Ответ: sry 4 nekroposting
Вопрос: Копирование значение табличной части для созданного документа

Добрый день!
Не подскажите как скопировать значение табличной части для вновь созданного документа (при условии что для него уже скопированы формулы) ))
Ответ: Спасибо ))
Вопрос: 1С Бухгалтерия предприятия. Ошибка при записи документа "Поступление товаров и услуг": не заполнен счет Дт.

Добрый день, подскажите пожалуйста какие поля нужно заполнять при создании документа "ПоступлениеТоваровУслуг" Я создаю данный документ программно и когда пытаюсь записать, мне выдаёт следующую ошибку:

{ВнешняяОбработка.СозданиеСводныхДокументов.Форма.Форма.Форма(140)}: Ошибка при вызове метода контекста (Записать)
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Запись не верна! Не заполнен счет дебета (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)

Причём выдаёт данную ошибку тогда, когда я пытаюсь создать документ на контрагента: "Конфетпром ООО". С контрагентом "Межрегионинтерснабсбыт ООО" таких проблем не возникает. Подозреваю что я не заполнил какое-то поле или поля.
Помогите плиз.


Сам код:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
&НаСервере
Процедура СозданиеДокумента()
    Счёт = 0;
    //Выбираю всех контрагентов
    ЗапросЭлементов = Новый Запрос;
    ЗапросЭлементов.Текст =
    "ВЫБРАТЬ
    |   Контрагенты.Ссылка
    |ИЗ
    |   Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    НЕ Контрагенты.ЭтоГруппа";         
    Выборка = ЗапросЭлементов.Выполнить().Выбрать();
    //Прохожу циклом по каждому контрагенту
    
    Пока Выборка.Следующий() Цикл
        //Получаю контрагента       
        СсылканаКонтрагента = Выборка.Ссылка;                           
        
        //Делаю запрос на получение не проведённых документов определённого контрагента
        ЗапросДокументов = Новый Запрос;
        ЗапросДокументов.УстановитьПараметр("Контрагент", СсылканаКонтрагента); 
        ЗапросДокументов.УстановитьПараметр("ЛОЖЬ", ЛОЖЬ);
        ЗапросДокументов.Текст = "ВЫБРАТЬ
        |   ПоступлениеТоваровУслуг.Ссылка
        |ИЗ
        |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |ГДЕ
        |   ПоступлениеТоваровУслуг.Контрагент = &Контрагент
        |   И ПоступлениеТоваровУслуг.Проведен = &ЛОЖЬ";            
        ВыборкаДок = ЗапросДокументов.Выполнить().Выбрать();
        //Получаю кол-во полученных документов
        Количество = ВыборкаДок.Количество();
        
        //Если  есть не проведённые документы то создаю новый документ 
        Если Количество > 0 Тогда 
            //Создаю новый документ на текущего контрагента 
            НовыйДокумент = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
            НовыйДокумент.Контрагент = СсылканаКонтрагента;
            НовыйДокумент.Дата = ТекущаяДата();
            НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
            
            Счёт = Счёт + Количество;               
            Пока ВыборкаДок.Следующий()Цикл
                Ссылканадок = ВыборкаДок;
                ТекущийДокумент = ВыборкаДок.Ссылка.ПолучитьОбъект();
                
                КоличествоСтрокТЧУслуг = ТекущийДокумент.Услуги.Количество();    
                Если КоличествоСтрокТЧУслуг > 0 Тогда 
                    //Записываю каждую строку из табличной части услуги в новый документ
                    Услуги = ТекущийДокумент.Услуги;                    
                    Для Каждого СтрокаТабЧасти Из Услуги Цикл
                        НоваяСтрокаТаблицы = НовыйДокумент.Услуги.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                                  
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.Содержание = СтрокаТабЧасти.Содержание;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.Субконто1 = СтрокаТабЧасти.Субконто1;
                        НоваяСтрокаТаблицы.Субконто2 = СтрокаТабЧасти.Субконто2;
                        НоваяСтрокаТаблицы.Субконто3 = СтрокаТабЧасти.Субконто3;
                        НоваяСтрокаТаблицы.СубконтоНУ1 =  СтрокаТабЧасти.СубконтоНУ1;
                        НоваяСтрокаТаблицы.СубконтоНУ2 =  СтрокаТабЧасти.СубконтоНУ2; 
                        НоваяСтрокаТаблицы.СубконтоНУ3 =  СтрокаТабЧасти.СубконтоНУ3;
                        НоваяСтрокаТаблицы.СчетЗатрат = СтрокаТабЧасти.СчетЗатрат;
                        НоваяСтрокаТаблицы.СчетЗатратНУ = СтрокаТабЧасти.СчетЗатратНУ;
                        НоваяСтрокаТаблицы.СчетУчетаНДС =СтрокаТабЧасти.СчетУчетаНДС;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                            
                    КонецЦикла;
                КонецЕсли;
                
                КоличествоСтрокТЧТоваров = ТекущийДокумент.Товары.Количество();
                Если КоличествоСтрокТЧТоваров > 0 Тогда
                    //Записываю каждый товар из табличной части услуги в новый документ
                    Товары = ТекущийДокумент.Товары;
                    Для Каждого СтрокаТабЧасти Из Товары Цикл
                        НоваяСтрокаТаблицы =  НовыйДокумент.Товары.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.ЕдиницаИзмерения = СтрокаТабЧасти.ЕдиницаИзмерения;  
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                      
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.СуммаНДС = СтрокаТабЧасти.СуммаНДС;
                        НоваяСтрокаТаблицы.Коэффициент = СтрокаТабЧасти.Коэффициент;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;  
                        НоваяСтрокаТаблицы.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                        
                    КонецЦикла;
                КонецЕсли;
                //Устанавливаю пометку на удаление текущий не проведённый документ
                ТекущийДокумент.УстановитьПометкуУдаления(Истина);   
            КонецЦикла;
            //Заполняю поля нового документа
            НовыйДокумент.СчетНаОплатуПоставщика = ТекущийДокумент.СчетНаОплатуПоставщика;
            НовыйДокумент.СпособЗачетаАвансов = ТекущийДокумент.СпособЗачетаАвансов;
            НовыйДокумент.СчетУчетаРасчетовПоАвансам = ТекущийДокумент.СчетУчетаРасчетовПоАвансам;
            НовыйДокумент.СчетУчетаРасчетовСКонтрагентом = ТекущийДокумент.СчетУчетаРасчетовСКонтрагентом;
            НовыйДокумент.ВалютаДокумента = ТекущийДокумент.ВалютаДокумента;
            НовыйДокумент.ДоговорКонтрагента = ТекущийДокумент.ДоговорКонтрагента;
            НовыйДокумент.НДСВключенВСтоимость= ТекущийДокумент.НДСВключенВСтоимость;
            НовыйДокумент.НДСНеВыделять = ТекущийДокумент.НДСНеВыделять;
            НовыйДокумент.Организация = ТекущийДокумент.Организация;
            НовыйДокумент.Ответственный = ТекущийДокумент.Ответственный;
            НовыйДокумент.Склад = ТекущийДокумент.Склад;
            НовыйДокумент.СуммаДокумента = ТекущийДокумент.СуммаДокумента;
            НовыйДокумент.КурсВзаиморасчетов = ТекущийДокумент.КурсВзаиморасчетов;
            НовыйДокумент.КратностьВзаиморасчетов =  ТекущийДокумент.КратностьВзаиморасчетов;
            НовыйДокумент.СпособЗачетаАвансов =  ТекущийДокумент.СпособЗачетаАвансов;
            
            //Свёртывание таблицы услуг
            КоличествоСтрокТЧУслуг = НовыйДокумент.Услуги.Количество();
            Если КоличествоСтрокТЧУслуг > 3 Тогда
                //Свёртывание табличной части услуг
                Свёртывание = НовыйДокумент.Услуги.Выгрузить();
                Свёртывание.Свернуть("Номенклатура","Цена, СтавкаНДС");
                НовыйДокумент.Услуги.Загрузить(Свёртывание);
            КонецЕсли;
            
            //Свёртывание таблицы товаров
            КоличествоСтрокТЧТоваров = НовыйДокумент.Товары.Количество();
            Если КоличествоСтрокТЧТоваров > 3 Тогда  
                //Свёртывание табличной части товаров
                Свёртывание = НовыйДокумент.Товары.Выгрузить();
                Свёртывание.Свернуть("Номенклатура", "Цена, СтавкаНДС");
                НовыйДокумент.Товары.Загрузить(Свёртывание);
            КонецЕсли;
            
            //Провожу созданный документ
            НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);    
        КонецЕсли;          
    КонецЦикла;  
КонецПроцедуры
Ответ: Всё, я разобрался, всё дело было в свёртывании, я указал не все нужные поля в методе свёртывания и после выполнения метода данные терялись и вылезало сообщение о том что не все поля заполнены.

Вот рабочий код:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
&НаСервере
Процедура СозданиеДокумента()
    Счёт = 0;
    //Выбираю всех контрагентов
    ЗапросЭлементов = Новый Запрос;
    ЗапросЭлементов.Текст =
    "ВЫБРАТЬ
    |   Контрагенты.Ссылка
    |ИЗ
    |   Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    НЕ Контрагенты.ЭтоГруппа";         
    Выборка = ЗапросЭлементов.Выполнить().Выбрать();
    //Прохожу циклом по каждому контрагенту
    
    Пока Выборка.Следующий() Цикл
        //Получаю контрагента       
        СсылканаКонтрагента = Выборка.Ссылка;                           
        
        //Делаю запрос на получение не проведённых документов определённого контрагента
        ЗапросДокументов = Новый Запрос;
        ЗапросДокументов.УстановитьПараметр("Контрагент", СсылканаКонтрагента); 
        ЗапросДокументов.УстановитьПараметр("ЛОЖЬ", ЛОЖЬ);
        ЗапросДокументов.Текст = "ВЫБРАТЬ
        |   ПоступлениеТоваровУслуг.Ссылка
        |ИЗ
        |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |ГДЕ
        |   ПоступлениеТоваровУслуг.Контрагент = &Контрагент
        |   И ПоступлениеТоваровУслуг.Проведен = &ЛОЖЬ";            
        ВыборкаДок = ЗапросДокументов.Выполнить().Выбрать();
        //Получаю кол-во полученных документов
        Количество = ВыборкаДок.Количество();
        
        //Если  есть не проведённые документы то создаю новый документ 
        Если Количество > 0 Тогда 
            //Создаю новый документ на текущего контрагента 
            НовыйДокумент = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
            НовыйДокумент.Контрагент = СсылканаКонтрагента;
            НовыйДокумент.Дата = ТекущаяДата();
            НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
            
            Счёт = Счёт + Количество;               
            Пока ВыборкаДок.Следующий()Цикл
                Ссылканадок = ВыборкаДок;
                ТекущийДокумент = ВыборкаДок.Ссылка.ПолучитьОбъект();
                
                КоличествоСтрокТЧУслуг = ТекущийДокумент.Услуги.Количество();    
                Если КоличествоСтрокТЧУслуг > 0 Тогда 
                    //Записываю каждую строку из табличной части услуги в новый документ
                    Услуги = ТекущийДокумент.Услуги;                    
                    Для Каждого СтрокаТабЧасти Из Услуги Цикл
                        НоваяСтрокаТаблицы = НовыйДокумент.Услуги.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                                  
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.Содержание = СтрокаТабЧасти.Содержание;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.Субконто1 = СтрокаТабЧасти.Субконто1;
                        НоваяСтрокаТаблицы.Субконто2 = СтрокаТабЧасти.Субконто2;
                        НоваяСтрокаТаблицы.Субконто3 = СтрокаТабЧасти.Субконто3;
                        НоваяСтрокаТаблицы.СубконтоНУ1 =  СтрокаТабЧасти.СубконтоНУ1;
                        НоваяСтрокаТаблицы.СубконтоНУ2 =  СтрокаТабЧасти.СубконтоНУ2; 
                        НоваяСтрокаТаблицы.СубконтоНУ3 =  СтрокаТабЧасти.СубконтоНУ3;
                        НоваяСтрокаТаблицы.СчетЗатрат = СтрокаТабЧасти.СчетЗатрат;
                        НоваяСтрокаТаблицы.СчетЗатратНУ = СтрокаТабЧасти.СчетЗатратНУ;
                        НоваяСтрокаТаблицы.СчетУчетаНДС =СтрокаТабЧасти.СчетУчетаНДС;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                            
                    КонецЦикла;
                КонецЕсли;
                
                КоличествоСтрокТЧТоваров = ТекущийДокумент.Товары.Количество();
                Если КоличествоСтрокТЧТоваров > 0 Тогда
                    //Записываю каждый товар из табличной части услуги в новый документ
                    Товары = ТекущийДокумент.Товары;
                    Для Каждого СтрокаТабЧасти Из Товары Цикл
                        НоваяСтрокаТаблицы =  НовыйДокумент.Товары.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.ЕдиницаИзмерения = СтрокаТабЧасти.ЕдиницаИзмерения;  
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                      
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.СуммаНДС = СтрокаТабЧасти.СуммаНДС;
                        НоваяСтрокаТаблицы.Коэффициент = СтрокаТабЧасти.Коэффициент;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;  
                        НоваяСтрокаТаблицы.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                        
                    КонецЦикла;
                КонецЕсли;
                //Устанавливаю пометку на удаление текущий не проведённый документ
                ТекущийДокумент.УстановитьПометкуУдаления(Истина);   
            КонецЦикла;
            //Заполняю поля нового документа
            НовыйДокумент.СчетНаОплатуПоставщика = ТекущийДокумент.СчетНаОплатуПоставщика;
            НовыйДокумент.СпособЗачетаАвансов = ТекущийДокумент.СпособЗачетаАвансов;
            НовыйДокумент.СчетУчетаРасчетовПоАвансам = ТекущийДокумент.СчетУчетаРасчетовПоАвансам;
            НовыйДокумент.СчетУчетаРасчетовСКонтрагентом = ТекущийДокумент.СчетУчетаРасчетовСКонтрагентом;
            НовыйДокумент.ВалютаДокумента = ТекущийДокумент.ВалютаДокумента;
            НовыйДокумент.ДоговорКонтрагента = ТекущийДокумент.ДоговорКонтрагента;
            НовыйДокумент.НДСВключенВСтоимость= ТекущийДокумент.НДСВключенВСтоимость;
            НовыйДокумент.НДСНеВыделять = ТекущийДокумент.НДСНеВыделять;
            НовыйДокумент.Организация = ТекущийДокумент.Организация;
            НовыйДокумент.Ответственный = ТекущийДокумент.Ответственный;
            НовыйДокумент.Склад = ТекущийДокумент.Склад;
            НовыйДокумент.СуммаДокумента = ТекущийДокумент.СуммаДокумента;
            НовыйДокумент.КурсВзаиморасчетов = ТекущийДокумент.КурсВзаиморасчетов;
            НовыйДокумент.КратностьВзаиморасчетов =  ТекущийДокумент.КратностьВзаиморасчетов;
            НовыйДокумент.СпособЗачетаАвансов =  ТекущийДокумент.СпособЗачетаАвансов;
            
            //Свёртывание таблицы услуг
            КоличествоСтрокТЧУслуг = НовыйДокумент.Услуги.Количество();
            Если КоличествоСтрокТЧУслуг > 1 Тогда
                НовыйДокумент.Услуги.Свернуть("Номенклатура, ОтражениеВУСН, СпособУчетаНДС, СтавкаНДС, СчетУчета, СчетУчетаНДС, Цена", "Количество, Сумма");   
            КонецЕсли;
            
            //Свёртывание таблицы товаров 
            КоличествоСтрокТЧТоваров = НовыйДокумент.Товары.Количество();
            Если КоличествоСтрокТЧТоваров > 1 Тогда                 
                НовыйДокумент.Товары.Свернуть("Номенклатура, ОтражениеВУСН, СпособУчетаНДС, СтавкаНДС, СчетУчета, СчетУчетаНДС, Цена", "Количество, Сумма");
            КонецЕсли;
            //Провожу созданный документ
            НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);    
        КонецЕсли;          
    КонецЦикла;  
КонецПроцедуры
Вопрос: Создать на основании несколько документов, в зависимости от реквизита

Добрый день, есть свой созданный документ в конфигурации, в нем табличная часть Товары, в ней поля: "Номенклатура", "Продукция". В одном таком документе, может быть несколько видов продукции, как мне в зависимости от количества разнообразной Продукции создать столько же документов "Заказ поставщику", с переносом туда только той номенклатуры, которая относится к одной продукции.
То есть скажем, в документе 3 вида продукции, должно создаться 3 заказа поставщику. Не понимаю как произвести деление.
Ответ:
не надо лезть в чужие вопросы, создайте свой
--- Объединение сообщений, 14 янв 2016 ---
ну раз док свой, уже созданный то особых проблем не должно быть

или обходом ТЧ с предварительной сортировкой её по "продукции"
далее в цикле проверяете куда заказать данную продукцию, точнее кому и на создаёте док "заказ поставщику" и далее пока не смениться продукция запихиваете в ТЧ создаваемого заказа,
при смене продукции уже созданный заказ записываем и проводим
и создаём заказ следующему поставщику

ну или через запрос
Вопрос: Выбрать документ если на основании него вводили документы в запросе?

Всем доброго времени суток.

Имеется
1С:Предприятие 8.3 (8.3.5.1517)

Задача в следующем. Есть документ заказ клиента на его основании вводятся документы 1) Расходный кассовый ордер 2) Поступление товаров и услуг 3) Внутренне потребление. Получается они все подчинены в структуре подчиненности документу заказ клиента. Также на основании заказа клиента вводится реализация товаров и услуг. Вопрос!
Как в запросе на СКД сделать так чтобы выбирались все документы заказ клиента за определенный период на основании которых были созданы документы 1) Расходный кассовый ордер 2) Поступление товаров и услуг 3) Внутренне потребление, но не был создан на основании документ Реализация Товаров и Услуг?

Как это сделать в запросе понять не могу делал связь типо

Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
        ПО (ЗаказКлиента.Ссылка = ПоступлениеТоваровУслуг.осиДокументОснование)

но выводит все документы заказ клиента?

Как это сделать?
Всем заранее спасибо за ответы.
Ответ: Вот так я могу выбрать пустые реализации

ВЫБРАТЬ
    ЕСТЬNULL(РеализацияТоваровУслуг.ЗаказКлиента, 0) КАК Ссылка,
    РеализацияТоваровУслуг.Ссылка КАК Ссылка1
ПОМЕСТИТЬ Реализация
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ЗаказКлиента.Ссылка,
    Реализация.Ссылка КАК РеализацияСсылка,
    Реализация.Ссылка1 КАК РеализацияРеализация
ИЗ
    Реализация КАК Реализация
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
        ПО Реализация.Ссылка = ЗаказКлиента.Ссылка

Но мне то нужно наоброт заказы в которых нет реализаций уже весь мозг сломал?