Имя: Пароль:
1C
1С v8
Проблема с программным обнулением счета.
0 Selma
 
16.06.15
16:20
Добрый вечер! никто не сталкивался с такого рода проблемой: имеется база Бухгалтерия 8.3, в которой в результате ошибочной настройки загрузчика из Раруса образовалась такая ситуация: на счете 41.12 есть остатки, при этом в некоторых местах в субконто "Склады" загружены значения из справочника "подразделения". Если делать операцию ручками, обнулить не получается, так как 1ска, естественно, не дает выбрать подразделения в субконто Склад. Попыталась написать обработку, которая вытаскивает остатки по счету и делает операцию бух, которая сторнирует эти остатки. Но и в операции по ошибочным субконто загружаются просто пустые значения. Как тут помочь горю?

Обработка:

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

        проводка.Сумма = Стр.суммаОстатокДТ-Стр.суммаОстатокКТ;
        проводка.количествоКт = Стр.количествоОстатокДТ-Стр.количествоОстатокКТ;
        
    КонецЦикла;  
    проводки.Записать();
1 Господин ПЖ
 
16.06.15
16:23
устанавливай значение "руками"

в .УстановитьСубконто() наверное "защита от дурака" есть
2 Selma
 
17.06.15
08:45
решение - Вместо Установитьсубконто использовать Проводка.СубконтоКт.Вставить(ВидСубконто, ЗначениеСубконто) где Видсубконто - не как задано в конфигурации, а как реально по итогам запроса получилось