Имя: Пароль:
1C
1С v8
Запись проводок в регистр бухгалтерии
0 Lolipop
 
18.01.16
14:48
Проблема такая. Пишу проводки из документа, после его проведения. Перемещаю ОС с одного субсчета на другой.
Процедура ПослеЗаписи()
    
    // Вывести в заголовке формы вид операции и статус документа (новый, не проведен, проведен).
    РаботаСДиалогами.УстановитьЗаголовокФормыДокумента(, ЭтотОбъект, ЭтаФорма);
    МеханизмНумерацииОбъектов.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер);
    
    НаборДанных = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборДанных.Отбор.Регистратор.Установить(Ссылка);

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

    Запрос.Текст =     "ВЫБРАТЬ
                       |    ХозрасчетныйОстатки.Счет,
                       |    ХозрасчетныйОстатки.Субконто1,
                       |    ХозрасчетныйОстатки.Субконто2,
                       |    ХозрасчетныйОстатки.Субконто3,
                       |    ХозрасчетныйОстатки.Организация,
                       |    ХозрасчетныйОстатки.Валюта,
                       |    ХозрасчетныйОстатки.СуммаОстаток,
                       |    ХозрасчетныйОстатки.СуммаОстатокДт,
                       |    ХозрасчетныйОстатки.СуммаОстатокКт,
                       |    ХозрасчетныйОстатки.СуммаРазвернутыйОстатокДт,
                       |    ХозрасчетныйОстатки.СуммаРазвернутыйОстатокКт,
                       |    ХозрасчетныйОстатки.ВалютнаяСуммаОстаток,
                       |    ХозрасчетныйОстатки.ВалютнаяСуммаОстатокДт,
                       |    ХозрасчетныйОстатки.ВалютнаяСуммаОстатокКт,
                       |    ХозрасчетныйОстатки.ВалютнаяСуммаРазвернутыйОстатокДт,
                       |    ХозрасчетныйОстатки.ВалютнаяСуммаРазвернутыйОстатокКт,
                       |    ХозрасчетныйОстатки.КоличествоОстаток,
                       |    ХозрасчетныйОстатки.КоличествоОстатокДт,
                       |    ХозрасчетныйОстатки.КоличествоОстатокКт,
                       |    ХозрасчетныйОстатки.КоличествоРазвернутыйОстатокДт,
                       |    ХозрасчетныйОстатки.КоличествоРазвернутыйОстатокКт
                       |ИЗ
                       |    РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет = &Счет, , Субконто1 В (&Субконто1)) КАК ХозрасчетныйОстатки";
                    
                    
    Запрос.УстановитьПараметр("Субконто1", МассивОС);
    Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ОСвОрганизации);

    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    
    Пока РезультатЗапроса.Следующий() Цикл
                    Проводка = НаборДанных.Добавить();
                    Проводка.Период =    ТекущаяДата();
                    Проводка.Регистратор =    ЭтотОбъект.Ссылка;
                       Проводка.Активность =    Истина;
                       Проводка.СчетДт =    РезультатЗапроса.Счет;
                       Проводка.СубконтоДт.ОсновныеСредства =    РезультатЗапроса.Субконто1;
                       Проводка.СчетКт =    ПланыСчетов.Хозрасчетный.НайтиПоКоду("0103");
                       Проводка.СубконтоКт.ОсновныеСредства =    РезультатЗапроса.Субконто1;
                    Проводка.Сумма = РезультатЗапроса.СуммаОстаток;
                    Проводка.Содержание = "Изменение ОС";
                    Проводка.Организация = РезультатЗапроса.Организация;
                                                  
    КонецЦикла;    
        НаборДанных.Записать(Ложь);  

Ошибка -
Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет))

Если пишу
аборДанных.Отбор.Регистратор.Значение = Объект.Ссылка; - также не записывается. Неверный тип регистратора
1 Lolipop
 
18.01.16
15:03
Как правильно отобрать по регистратору?
2 Lolipop
 
18.01.16
15:04
Думаю, что проблема в том, что данный документ не делает проводок, тогда какой делать отбор по регисратору?
3 Живой Ископаемый
 
18.01.16
15:07
создай документ который делает, установи для него ссылку нового, используй эту ссылку в качестве значения отбора по регистратору. Запиши набор записи, документ не записывай.
PROFIT
4 Nuobu
 
18.01.16
15:20
(3) А потом ТИИ тебе грохнет запись!
5 Живой Ископаемый
 
18.01.16
15:21
2(4) Вообще-то куй, но даже если кто-то задумает удалить такие записи - и спросит на форуме, как их отобрать, то ему я тоже подскажу.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.