Имя: Пароль:
1C
1С v8
Проводки в 1С 8.3
0 dred999
 
08.02.16
10:15
Всем привет. Есть Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.43.89). Есть задача грузить из екселя данные в документ Операции введенные в ручную.
Все данные реквизитов гружу без проблем, а вот в табличную часть движение не могу загрузить.
Подскажите как это сделать.
Вот пытаюсь так загрузить:
ДокументОпВРучную = Документы.ОперацияБух.СоздатьДокумент();
    
    Для каждого СтрокаТаблицы Из Объект.ТаблицаЗагрузки Цикл
        
        ДокументОпВРучную = Документы.ОперацияБух.СоздатьДокумент();
                
        ДокументОпВРучную.Дата = СтрокаТаблицы.ДатаДокумента;
        ДокументОпВРучную.Организация = СтрокаТаблицы.Контрагент;
        ДокументОпВРучную.СуммаОперации = СтрокаТаблицы.Сумма012;
        ДокументОпВРучную.Комментарий = СтрокаТаблицы.Коментарий;
        ДокументОпВРучную.Содержание = "Возврат от покупателя";
// Грузим движение по документу.        
    ТабЧастьДт = ДокументОпВРучную.Движения.Хозрасчетный.ДобавитьДебет();
        ТабЧастьДт.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");

Не получается. Как правильно грузить?
1 Cyberhawk
 
08.02.16
10:16
Записывать не забывай
2 dred999
 
08.02.16
10:17
(1)  Записывается нормально.
    Попытка
            ДокументОпВРучную.Записать(РежимЗаписиДокумента.Запись);
        Исключение
            Сообщить("Не удалось записать документ " + ДокументОпВРучную + " по причине " + ОписаниеОшибки());
        КонецПопытки
        
        
    КонецЦикла;
3 dred999
 
08.02.16
10:17
(1) Документ записываеться но без движения.
4 Shved_72
 
08.02.16
10:21
писать надо в регистр
5 hhhh
 
08.02.16
10:21
(3) движения записывать не забывай.
6 Amra
 
08.02.16
10:22
(3) Движения записывать незабывай.
7 Shved_72
 
08.02.16
10:22
Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(ДокументОпВРучную .Ссылка);
    Набор.Прочитать();
    
            Движение = Набор.Добавить();

... бла бла бла
8 Dmitrii
 
гуру
08.02.16
10:26
(0) В БП регистр бухгалтерии с поддержкой корреспонденции.
Поэтому не надо добавлять отдельно дебет и отдельно кредит. Вместо ДобавитьДебет() надо использовать метод Добавить().
9 dred999
 
08.02.16
10:29
(8)     ДокументОпВРучную = Документы.ОперацияБух.СоздатьДокумент();
    
    Для каждого СтрокаТаблицы Из Объект.ТаблицаЗагрузки Цикл
        
        ДокументОпВРучную = Документы.ОперацияБух.СоздатьДокумент();
                
        ДокументОпВРучную.Дата = СтрокаТаблицы.ДатаДокумента;
        ДокументОпВРучную.Организация = СтрокаТаблицы.Контрагент;
        ДокументОпВРучную.СуммаОперации = СтрокаТаблицы.Сумма012;
        ДокументОпВРучную.Комментарий = СтрокаТаблицы.Коментарий;
        ДокументОпВРучную.Содержание = "Возврат от покупателя";
        
                ////////////////////////////////////
        Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
           Набор.Отбор.Регистратор.Установить(ДокументОпВРучную.Ссылка);
        Набор.Прочитать();
                 Движение = Набор.Добавить();
        ///////////////////////////////////
        Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");

        
        
        Попытка
            ДокументОпВРучную.Записать(РежимЗаписиДокумента.Запись);
        Исключение
            Сообщить("Не удалось записать документ " + ДокументОпВРучную + " по причине " + ОписаниеОшибки());
        КонецПопытки
        
        
    КонецЦикла;

Не добавляет
10 Shved_72
 
08.02.16
10:36
Набор.Записать(Истина); пропустил
11 Dmitrii
 
гуру
08.02.16
10:37
(9) Если работаешь с регистром через набор записей, то для установки отбора по регистратору этот регистратор должен быть уже записан. У тебя он не записан.
И в твоём случае проще работать с набором записей через коллекцию Движения, а не заниматься фигнёй как в (7).

Движение = ДокументОпВРучную.Движения.Хозрасчетный.Добавить();
12 dred999
 
08.02.16
10:43
(11)  делаю :
Движение = ДокументОпВРучную.Движения.Хозрасчетный.Добавить();
        Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");
        Движение.Записать(Истина);


Выбивает ошибку:

{Форма.Форма.Форма(131)}: Метод объекта не обнаружен (Записать)
        Движение.Записать(Истина);
13 dred999
 
08.02.16
10:57
(7)     Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
           Набор.Отбор.Регистратор.Установить(ДокументОпВРучную.Ссылка);
        Набор.Прочитать();
        Движение = Набор.Добавить();
        Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");
        
        Набор.Записать(Истина);
        
Ошибка: {Форма.Форма.Форма(140)}: Ошибка при вызове метода контекста (Записать)
        Набор.Записать(Истина);
по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет))
14 Dmitrii
 
гуру
08.02.16
11:01
(12) Вместо Движение.Записать(Истина) надо ДокументОпВРучную.Движения.Хозрасчетный.Записать();
15 hhhh
 
08.02.16
11:02
(13) ДокументОпВручную не забывай записать.
16 dred999
 
08.02.16
11:13
(15) Да. Записываю. Эту часть кода прост не скопировал и не вынес. Вот весь код:


    Для каждого СтрокаТаблицы Из Объект.ТаблицаЗагрузки Цикл
        
        ДокументОпВРучную = Документы.ОперацияБух.СоздатьДокумент();
        
        ДокументОпВРучную.Дата = СтрокаТаблицы.ДатаДокумента;
        ДокументОпВРучную.Организация = СтрокаТаблицы.Контрагент;
        ДокументОпВРучную.СуммаОперации = СтрокаТаблицы.Сумма012;
        ДокументОпВРучную.Комментарий = СтрокаТаблицы.Коментарий;
        ДокументОпВРучную.Содержание = "Возврат от покупателя";
        
        ////////////////////////////////////
        Движение = ДокументОпВРучную.Движения.Хозрасчетный.Добавить();
        Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");
        //Движение.Записать(Истина);
        /////////////////////////////////////
        
        Попытка
            ДокументОпВРучную.Записать(РежимЗаписиДокумента.Запись);
        Исключение
            Сообщить("Не удалось записать документ " + ДокументОпВРучную + " по причине " + ОписаниеОшибки());
        КонецПопытки
        
        
    КонецЦикла;
17 dred999
 
08.02.16
11:16
Как правильно не пойму.
18 dred999
 
08.02.16
11:30
(14) Та же самая ошибка.

{Форма.Форма.Форма(138)}: Ошибка при вызове метода контекста (Записать)
        ДокументОпВРучную.Движения.Хозрасчетный.Записать();
по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет))
19 QuestNew
 
08.02.16
11:35
тДок    = Документы.ОперацияБух.СоздатьДокумент();
...
тДок.Записать();
Регистр = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Регистр.Отбор.Регистратор.Значение = тДок.Ссылка;
НоваяЗапись = Регистр.Добавить();
НоваяЗапись.Регистратор = тДок.Ссылка;
...
НоваяЗапись.Активность = Истина;
Регистр.Записать();
20 dred999
 
08.02.16
13:28
Все разобрался! Всем спасибо!
Закон Брукера: Даже маленькая практика стоит большой теории.