новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

"Причесывание субконто" в 7.7

  • Добавить свою публикацию
  • для этого требуется регистрация

Причесывание субконто

 

Когда в 1с набирается за месяц накладных больше нескольких тысяч (или десятков тысяч) то перепроведение документов становиться задачей на несколько часов. Но иногда возникает необходимость в перепроведении только части документов. Работая на хлебозаводе у меня время от времени возникала ситуация знакомая наверное многим бухгалтерам: оборотно-сальдовая ведомость по счету показывает нулевые остатки по количеству а по сумме есть или плюс или минус. 

 

Все знают, как с этим бороться перепровести документы и все исчезнет, но иногда перепроведение всех документов невозможно (большая база, нет прав, нужно исправить очень скоро), а перепроведение вручную также невозможно или усложнено (субконто по которому вылез плюс/минус по суме, участвует в движении сотни другой документов).

 Изображение

Для  того чтобы избавится от отклонений нужно просто перепровести все документы «Карточки счета» давайте выберем их и программно перепроведем. Обработку я назвал «Причесывание субконто».

Внешний вид обработки следующий думаю, поля в объяснениях не нуждаются.

 Изображение

Нажатие на кнопку «Сформировать» создаст список  документов и запустит их перепроведение.

 

 

Код, тоже не из сложных:

 

 

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

 

 

                       

В случае с базой в 60 тис. документов в месяц  и  минусах  по некоторым позициям обработка очень  упрощает жизнь. Ведь перепровести 200 -300 документов обработкой и вручную это 5 мин. против  часа, а то и двух. Главное чтобы себестоимость партии расчитивалась в момент перепровдения дкумента. 

 

 
0
Читайте также
Что можно сделать в 1с7.7 с помощью внешних компонент?
Что можно сделать в 1С7.7 с помощью ВК
Как получить список всех документов или справочников в 1С:Предприятие 8х.
"Как выбрать все документы после перехода с 1С7.7"
(V 7.7) Справка по работе с метаданными (с примерами)
Получение метаданных в программе 1С 7.7 происходит через объект "Метаданные"
Разработки
Остатки и движения ТМЦ (Бухгалтерия 7.7 типовая)
Отчет по остаткам и движениям ТМЦ 1С 7.7 типовая
Групповое обновление конфигураций
Групповое обновление конфигураций 1С7.7
Доступ к реквизитам справочника в 1с7.7 для каждого пользователя
Разработка разграничивает доступ к реквизитам справочника в 1С 7.7
Еще от автора
≡ к списку статей