Стандартная свертка базы 1С:Розница не работает? Тогда вам сюда

07.09.22

База данных - Свертка базы

В публикации рассмотрен механизм свертки базы в один клик или по расписанию на начало предыдущего месяца.

Скачать исходный код

Наименование Файл Версия Размер
Стандартная свертка базы 1С:Розница не работает? Тогда вам сюда.:
.epf 7,16Kb
23
.epf 7,16Kb 23 Скачать

Пара продовольственных розничных магазинов генерируют в год примерно 100 тысяч документов и миллионы записей регистров. Типовая свертка может продлиться 1 день и еще дольше будут удаляться помеченные на удаление документы. Если настроена распределенная база данных, то обмен тоже не будет работать до окончания прохождения огромных сообщений с удаленными объектами. А что делать магазинам несколько дней?

Если 1С:Розница используется как кассовая программа, то есть учет ведется в вышестоящей товароучетной системе (например, 1С:Управление торговлей), то свертку можно проводить почаще. Например, раз в месяц, оставляя документы за последний месяц.

Приложенная обработка производит следующие операции:

- удаляет непосредственно все документы ЧекККМ, а также все документы движений в регистры ТоварыНаСкладах, ЦеныНоменклатуры, БонусныеБаллы датой до начала предыдущего месяца (если запускаем 05.09.2022, то удаляются документы до 01.08.2022 00:00:00);

 

 

- формирует документ начальных остатков Корректировка регистров только по регистрам ТоварыНаСкладах, ЦеныНоменклатуры, БонусныеБаллы датой за секунду до начала предыдущего месяца (если запускаем 05.09.2022, то Корректировка регистров с датой 31.07.2022 23:59:59);

 

 

- создает лог-файл в папке C:\temp.

 

 

Внимание! Действия обработки необратимы! В обработке используется непосредственное удаление документов. Копия базы обязательна перед использованием!

Тестировалось на платформе 1С версии 8.3.21.1302, демо-базе конфигурации 1С:Розница версии 2.3.11.44. Код модуля объекта обработки представлен ниже.


#Область ПрограммныйИнтерфейс

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "22.09.05";
	
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина, "Обработка использует временное хранилище.");
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Свертка базы'");
	НоваяКоманда.Идентификатор = "СверткаБазы";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	НоваяКоманда.ПоказыватьОповещение = Истина;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции 

Функция ВыполнитьКоманду(Идентификатор, ПараметрыКоманды) Экспорт
	
	Если Идентификатор = "СверткаБазы" Тогда  
		
		СтруктураПараметров = Новый Структура;
		СтруктураПараметров.Вставить("ДатаСвертки", НачалоМесяца(ДобавитьМесяц(ТекущаяДата(), -1)));
		СтруктураПараметров.Вставить("ТолькоПосчитать", Ложь);
		СтруктураПараметров.Вставить("ОтправлятьВТелеграм", Ложь);
		СтруктураПараметров.Вставить("IDПользователяТелеграм", "0"); 
		СоздатьКаталог("C:\temp");
		СтруктураПараметров.Вставить("ПутьКЛогФайлу", "C:\temp\log1c.txt");
		
		СверткаБазы(СтруктураПараметров);
	КонецЕсли;
	
КонецФункции

#КонецОбласти


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

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

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

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

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

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

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

// Вспомогательные процедуры и функции
Процедура ЗаписатьЛог(Строка, ОтправитьВТелеграм = Ложь, IDПользователяТелеграм = "", ПутьКЛогФайлу)
	СтрокаКЗаписи = Строка(ТекущаяДата()) + ": " + Строка; 
	
	Если ОтправитьВТелеграм Тогда
		ОтправитьВТелеграм(СтрокаКЗаписи, IDПользователяТелеграм);		
	КонецЕсли;
	
	Файл = Новый ЗаписьТекста(ПутьКЛогФайлу,,,Истина);
	Файл.ЗаписатьСтроку(СтрокаКЗаписи);
	Файл.Закрыть();
	
	Сообщить(СтрокаКЗаписи);
КонецПроцедуры

Процедура ОтправитьВТелеграм(СтрокаКЗаписи, IDПользователяТелеграм);
// отправка в телеграм
КонецПроцедуры

 

свертка чистка базы удаление документы размер розница

См. также

Оптимизированная свертка Бухгалтерии 3.0

Свертка базы Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Платные (руб)

Расширение позволяет за 1-2 дня свернуть базу с десятками миллионов документов. Использует оптимизированный алгоритм определения документов, на которые нет ссылок, для последующего удаления 16 фоновыми заданиями. Не помечает документы на удаление.

38400 руб.

08.02.2024    612    2    0    

3

Многофункциональная выгрузка из 1С:УТ 11/ УТ 10 в 1С:БП2, БП3 (соответствия товаров, контрагентов, складов, статей ДДС)+Свёртка по НДС

Обмен между базами 1C Оптовая торговля Свертка базы Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Хотите точно знать, что вы выгружаете? Хотите сворачивать товары по НДС или фильтровать товары по доп. реквизиту? Вы волшебник, которому необходимо превращать одних контрагентов в других? Хотите при выгрузке превратить группу товаров в один? Или просто нужен удобный OLE обмен между 1C:Управление торговлей (ред. 11 или 10) и 1С:Бухгалтерия предприятия (ред. 2 или 3). Тогда эта обработка для вас!

10900 руб.

19.04.2013    168958    351    397    

327

Свертка базы УТ 10.3. Новая концепция

Свертка базы Платформа 1С v8.3 1С:Управление торговлей 10 Управленческий учет Абонемент ($m)

Представлена обработка для свертки УТ 10.3 по новой концепции - когда сворачиваем "подокументно", а не "целиком и сразу по всем регистрам".

5 стартмани

03.04.2024    1989    7    RustIG    16    

16

Сравнение остатков по регистрам накопления

Свертка базы Платформа 1С v8.3 1С:Управление торговлей 10 Управленческий учет Абонемент ($m)

Внешняя обработка (для конфигураций на обычных формах) сравнивает остатки на дату и в разрезе организации по всем регистрам накопления. Сравнение происходит между базами по технологии Com-соединение. Используется при свертке базы.

3 стартмани

27.03.2024    514    1    RustIG    0    

4

Свертка остатков по 41 счету в корреспонденции с 91 счетом

Свертка базы Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Обработка обращается к остаткам по счету 41.1 на дату, что выбрал пользователь, пробегается по ним и заполняет документ "Операция, введенная вручную".

1 стартмани

18.03.2024    325    5    config    3    

2

Свертка ЗУП 3.1 и ЗКГУ 3.1

Свертка базы Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

Вопрос, который мучает всех: в связи с развитием возможностей программ 1С размеры/объем очень быстро растут (уже объем пустой базы более 1 Гб) и не секрет, что чем "тяжелее" база, тем она медленнее работает. Для БП-3.0 разработчики 1С сделали вшитый типовой механизм свертки базы, суть которого вывести остатки по счетам на дату свертки и удалить все документы/движения до этой даты. А вот для ЗУП пока ничего подобного нет, а база растет быстрее, чем на дрожжах. Я долго анализировал и искал возможные решения для свертки ЗУП, поиск в интернете дал кучу различных вариантов. А когда начинаешь их рассматривать, в основном – только "перенос" среднего заработка, а остальное – "доделай сам". Только фирмы-франчайзи предлагают что-то более серьезное, но за хорошую плату.

5 стартмани

28.02.2024    1556    51    ivnik    33    

17

Свертка выбранных остатков

Свертка базы Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Обработка позволяет свернуть выбранные остатки по счету на выбранный счет.

1 стартмани

13.02.2024    274    4    medm    0    

3

Свертка ЗУП 3

Свертка базы Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Свертка ЗУП 3.1 по трем регистрам с возможностью чистки базы от документов движения и чистки сотрудников от уволенных.

5 стартмани

16.01.2024    1310    35    AlexHelmer    1    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Vital451 99 09.09.22 08:38 Сейчас в теме
А в реальных условиях работала ? С РИБами ?
2. niki295 29 07.10.22 20:24 Сейчас в теме
Тоже интересует данный вопрос
3. vasilievil 551 09.10.22 17:04 Сейчас в теме
Да, работала в реальных условиях с РИБами.
4. Stason13 25.10.22 12:20 Сейчас в теме
Сколько по времени занимает эта свертка?
5. Kopitsa.k 22 02.01.23 00:34 Сейчас в теме
Обработка без какого либо интерфейса, хотя логи можно было бы выводить на саму форму а не в файл, со ссылками на документы. Изначально даже впал в ступор когда при скачивании получил тот же код что и в описании, без всяких форм. Потом прочила детальнее описание и понял задумку.
Сейчас буду тестировать
6. ssn5810 79 26.06.23 21:19 Сейчас в теме
А форму с выбором даты свертки напряжно было сделать ?
Оставьте свое сообщение