Перенос данных из базы с поврежденными таблицами

06.06.17

База данных - Инструменты администратора БД

У клиента что-то произошло с жестким диском, что потребовало восстановления данных на нем. Базу 1С вроде бы сохранили, и она даже открылась. Однако при попытке доступа к документу "Платежный ордер, списание денежных средств" база вылетает с ошибкой. Также при получении оборотов за период в целом и по декадам выводились разные цифры. Обработка переноса данных в идентичную конфигурацию не подошла, из-за того, что так же вылетала с ошибкой БД. Ниже опишу мои действия по созданию новой конфигурации.

При попытке доступа к документу "Платежный ордер списание денежных средств" база вылетает с ошибкой.

Ошибка СУБД:
Ошибка SQL: Таблица не найдена '_Document151_VT3126'
по причине:
Ошибка SQL: Таблица не найдена '_Document151_VT3126'

Так же (как выяснилось позже) при получении оборотов за период в целом и по декадам выводились разные цифры. 

Обработка переноса данных в идентичную конфигурацию не подошла, из за того, что так же вылетала с ошибкой БД.

Первой мыслью было перенести все документы, кроме битых. Однако ее даже не начал реализовывать, т.к. не хотелось бы бороться с пересортами.

Поэтому решил переносить документы вместе с движениями. Задача не замысловатая. В режиме "Предприятие" открыл обработку MD82Exp.epf. Снял все галки и выгрузил описание метаданных в XML файл

Далее запустил конвертацию данных 2.0 и загрузил метаданные в нее.

Так же создал новую конфигурацию но основе имеющейся конфигурации. Запустил ее, произвел первоначальную настройку. Это нужно для того, что бы на счетах, контролируемых системой была установлена соответствующая аналитика.

Далее все просто. Создал новую конвертацию и с помощью мастера автоматический создал правила конвертации объектов.

Нашел ПКО для документа "Платежный ордер списание денежных средств" и событии выгрузки "ПередВыгрузкой" написал два слова:

Отказ = Истина;

Так же с помощью мастера создал правила выгрузки данных.

Пришло время "испорченных" документов. Дело в том, что получить доступ к оборотам по счету я мог, и они включали движения документов, таблица которого повреждена. Поэтому я решил вытащить эти обороты из ОСВ. Для этого в настройках правил обмена на закладе "Алгоритмы/Запросы" создал новый запрос с именем БУ

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

УПОРЯДОЧИТЬ ПО
	БУ.Период

т.е. "вытащил" все проводки документа "ПлатежныйОрдерСписаниеДенежныхСредств". Периодичность "Регистратор" нужна для того, что бы можно было поставить отбор на его тип. Аналогично создал запрос НУ, который получает данные из налогового учета.

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

УПОРЯДОЧИТЬ ПО
	НУ.Период

Создал новое ПКО, где объект источник -- пустое значение, а объект приемник -- документ ОперацияБух. Назвал его ОперацияБухПО. Правила конвертации свойств для него так же заполнил автоматически. Создал в ручную ПравилоВыгрузкиДанных со следующими настройками Объект выборки: Не указан Способ выборки: Произвольный алгоритм Правило конвертации: ОперацияБухПО.

Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяОрганизация");
БУ = Запросы.БУ.Выполнить().Выгрузить();
НУ = Запросы.НУ.Выполнить().Выгрузить();

Операции = БУ.Скопировать(,"Дата");
Операции.Свернуть("Дата");
Операции.Колонки.Добавить("Номер");
Операции.Колонки.Добавить("ПометкаУдаления");
Операции.Колонки.Добавить("Организация");
Операции.Колонки.Добавить("Автор");
Операции.Колонки.Добавить("Комментарий");
Операции.Колонки.Добавить("Ответственный");
Операции.Колонки.Добавить("Содержание");
Операции.Колонки.Добавить("СтруктурноеПодразделение");
Операции.Колонки.Добавить("ТиповаяОперация");
Операции.Колонки.Добавить("СуммаОперации");

Операции.Колонки.Добавить("Типовой");
Операции.Колонки.Добавить("Налоговый");
Операции.Колонки.Добавить("ЗапрашиваемыеПараметры");

Типовой = Неопределено;
Налоговый = Неопределено;	
ЗапрашиваемыеПараметры = Неопределено;

Выполнить(Алгоритмы.ПодготовитьТаблицыПроводок);

Год = 0;
СЦ = 0;
Для Каждого Операция ИЗ Операции Цикл
	Если Год <> Год(Операция.Дата) Тогда
		Год = Год(Операция.Дата);СЦ = 0;
	КонецЕсли;
	СЦ = СЦ+1;
	Операция.Номер = ПривестиНомерКДлине(Строка(СЦ),11,,"ПО-");
	Операция.ПометкаУдаления = ЛОЖЬ;
	Операция.ТиповаяОперация = Справочники.ТиповыеОперации.ПустаяСсылка();
	Операция.Организация = Организация;
	Операция.Комментарий = "Перенос проводок списания денежных средств за "+Формат(Операция.Дата,"ДФ='dd MMMM yyyy'");
	Операция.Автор = глТекущийПользователь;
	Операция.Ответственный = глТекущийПользователь;
	Операция.Содержание = Операция.Комментарий;
	//
	Операция.Типовой = Типовой.СкопироватьКолонки();
	Операция.Налоговый = Налоговый.СкопироватьКолонки();
	Операция.ЗапрашиваемыеПараметры = ЗапрашиваемыеПараметры.СкопироватьКолонки();
	Строки = БУ.НайтиСтроки(Новый Структура("Дата", Операция.Дата));
	
	СуммаОперации = 0;
	ТЧ = Операция.Типовой;
	Выполнить(Алгоритмы.ПолучитьПроводки);
	Операция.СуммаОперации = СуммаОперации;
	Строки = НУ.НайтиСтроки(Новый Структура("Дата", Операция.Дата));
	ТЧ = Операция.Налоговый;
	Выполнить(Алгоритмы.ПолучитьПроводки);
КонецЦикла;

ВыборкаДанных = Операции;

Что бы не плодить кучу документов сделал так, что бы обороты содились по дням, в независимости от того, сколько за этот день было фактические документов, создается одна операция.

В модуле, для сокращения его размера (и повышения читабельности) создание служебных таблиц вынес в алгоритмы. ПодготовитьТаблицыПроводок и ПолучитьПроводки

//ПодготовитьТаблицыПроводок
Типовой = Новый ТаблицаЗначений;
Типовой.Колонки.Добавить("Активность");
Типовой.Колонки.Добавить("ВалютаДт");
Типовой.Колонки.Добавить("ВалютаКт");
Типовой.Колонки.Добавить("ВалютнаяСуммаДт");
Типовой.Колонки.Добавить("ВалютнаяСуммаКт");
Типовой.Колонки.Добавить("ВидРегламентнойОперации");
Типовой.Колонки.Добавить("КоличествоДт");
Типовой.Колонки.Добавить("КоличествоКт");
Типовой.Колонки.Добавить("НомерЖурнала");
Типовой.Колонки.Добавить("Организация");
Типовой.Колонки.Добавить("Период");
Типовой.Колонки.Добавить("Регистратор");
Типовой.Колонки.Добавить("Содержание");
Типовой.Колонки.Добавить("СтруктурноеПодразделениеДт");
Типовой.Колонки.Добавить("СтруктурноеПодразделениеКт");
Типовой.Колонки.Добавить("СубконтоДт");
Типовой.Колонки.Добавить("СубконтоКт");
Типовой.Колонки.Добавить("Сумма");
Типовой.Колонки.Добавить("СчетДт");
Типовой.Колонки.Добавить("СчетКт");
Налоговый = Новый ТаблицаЗначений;
Налоговый.Колонки.Добавить("Активность");
Налоговый.Колонки.Добавить("ВидРегламентнойОперации");
Налоговый.Колонки.Добавить("ВидУчетаДт");
Налоговый.Колонки.Добавить("ВидУчетаКт");
Налоговый.Колонки.Добавить("КоличествоДт");
Налоговый.Колонки.Добавить("КоличествоКт");
Налоговый.Колонки.Добавить("НомерЖурнала");
Налоговый.Колонки.Добавить("Организация");
Налоговый.Колонки.Добавить("Период");
Налоговый.Колонки.Добавить("Регистратор");
Налоговый.Колонки.Добавить("Содержание");
Налоговый.Колонки.Добавить("СтруктурноеПодразделениеДт");
Налоговый.Колонки.Добавить("СтруктурноеПодразделениеКт");
Налоговый.Колонки.Добавить("СубконтоДт");
Налоговый.Колонки.Добавить("СубконтоКт");
Налоговый.Колонки.Добавить("Сумма");
Налоговый.Колонки.Добавить("СчетДт");
Налоговый.Колонки.Добавить("СчетКт");
ЗапрашиваемыеПараметры = Новый ТаблицаЗначений;
ЗапрашиваемыеПараметры.Колонки.Добавить("Значение");
ЗапрашиваемыеПараметры.Колонки.Добавить("Имя");
ЗапрашиваемыеПараметры.Колонки.Добавить("Представление");
//ПолучитьПроводки
Для Каждого Проводка ИЗ Строки Цикл
	СуммаОперации = СуммаОперации + Проводка.Сумма;
	стрТЧ = ТЧ.Добавить();
	ЗаполнитьЗначенияСвойств(стрТЧ, Проводка);
	стрТЧ.Период = КонецДня(Проводка.Дата);
	стрТЧ.СубконтоДт = Новый Соответствие;
	Если Проводка.СчетДт.ВидыСубконто.Количество() > 0 Тогда
		стрТЧ.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто[0].ВидСубконто, Проводка.СубконтоДт1);
	КонецЕсли;
	Если Проводка.СчетДт.ВидыСубконто.Количество() > 1 Тогда
		стрТЧ.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто[1].ВидСубконто, Проводка.СубконтоДт2);
	КонецЕсли;
	Если Проводка.СчетДт.ВидыСубконто.Количество() > 2 Тогда
		стрТЧ.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто[2].ВидСубконто, Проводка.СубконтоДт3);
	КонецЕсли;
	стрТЧ.СубконтоКт = Новый Соответствие;
	Если Проводка.СчетКт.ВидыСубконто.Количество() > 0 Тогда
		стрТЧ.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто[0].ВидСубконто, Проводка.СубконтоКт1);
	КонецЕсли;
	Если Проводка.СчетКт.ВидыСубконто.Количество() > 1 Тогда
		стрТЧ.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто[1].ВидСубконто, Проводка.СубконтоКт2);
	КонецЕсли;
	Если Проводка.СчетКт.ВидыСубконто.Количество() > 2 Тогда
		стрТЧ.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто[2].ВидСубконто, Проводка.СубконтоКт3);
	КонецЕсли;
КонецЦикла;

Алгоритм "ПодготовитьТаблицыПроводок" просто создает нужные ТЗ.

Алгоритм "ПолучитьПроводки" заполняет аналитику.

На этом, мне казалось, что все. Сохранил правила обмена. Выгрузил данные из битой конфы, загрузил в новую. Все прошло без ошибок.

Но тут меня ждал сюрприз с таблицами итогов. По видимому они тоже повредились, что привело к расхождению данных за период с разным видом оборотов.

По согласованию с заказчиком было решено перенести лишь входящие остатки на начало года. Для этого создал новый запрос ОСВ_БУ

ВЫБРАТЬ
     &ДатаОкончания КАК Дата,
	БУ.Счет КАК Счет,
	ИСТИНА КАК Активность,
	ВЫБОР  КОГДА БУ.Счет.Вид = &Активный ТОГДА БУ.Счет
			ИНАЧЕ &Счет0  КОНЕЦ КАК СчетДт,
	ВЫБОР КОГДА БУ.Счет.Вид = &Пассивный ТОГДА БУ.Счет
			ИНАЧЕ &Счет0 КОНЕЦ КАК СчетКт,
	ВЫБОР КОГДА БУ.Счет.Вид = &Активный ТОГДА БУ.Субконто1
			ИНАЧЕ NULL КОНЕЦ КАК СубконтоДт1,
	ВЫБОР КОГДА БУ.Счет.Вид = &Активный  ТОГДА БУ.Субконто2
			ИНАЧЕ NULL КОНЕЦ КАК СубконтоДт2,
	ВЫБОР КОГДА БУ.Счет.Вид = &Активный  ТОГДА БУ.Субконто3
			ИНАЧЕ NULL КОНЕЦ КАК СубконтоДт3,
	ВЫБОР КОГДА БУ.Счет.Вид = &Пассивный ТОГДА БУ.Субконто1
			ИНАЧЕ NULL  КОНЕЦ КАК СубконтоКт1,
	ВЫБОР КОГДА БУ.Счет.Вид = &Пассивный  ТОГДА БУ.Субконто2
			ИНАЧЕ NULL КОНЕЦ КАК СубконтоКт2,
	ВЫБОР КОГДА БУ.Счет.Вид = &Пассивный ТОГДА БУ.Субконто3
			ИНАЧЕ NULL КОНЕЦ КАК СубконтоКт3,
	ВЫБОР КОГДА БУ.Счет.Вид = &Активный ТОГДА БУ.Валюта
			ИНАЧЕ NULL КОНЕЦ КАК ВалютаДт,
	ВЫБОР КОГДА БУ.Счет.Вид = &Пассивный ТОГДА БУ.Валюта
			ИНАЧЕ NULL КОНЕЦ КАК ВалютаКт,
	ВЫБОР КОГДА БУ.Счет.Вид = &Активный ТОГДА БУ.СуммаОстатокДт
			ИНАЧЕ БУ.СуммаОстатокКт КОНЕЦ КАК Сумма,
	БУ.Организация,
	БУ.СтруктурноеПодразделение КАК СтруктурноеПодразделениеДт,
	БУ.СтруктурноеПодразделение КАК СтруктурноеПодразделениеКт,
	БУ.ВалютнаяСуммаОстатокДт КАК ВалютнаяСуммаДт,
	БУ.ВалютнаяСуммаОстатокКт КАК ВалютнаяСуммаКт,
	БУ.КоличествоОстатокДт КАК КоличествоДт,
	БУ.КоличествоОстатокКт КАК КоличествоКт
ИЗ
	РегистрБухгалтерии.Типовой.Остатки(&ДатаОкончания, , , ) КАК БУ
УПОРЯДОЧИТЬ ПО
	БУ.Счет.Код

который получает остатки по всем счетам. Создал правило правило выгрузки данных "Перенос ОСВ", так же по произвольному алгоритму. И указал для него следующий текст.

Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяОрганизация");
Запросы.ОСВ_БУ.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Запросы.ОСВ_БУ.УстановитьПараметр("Счет0", ПланыСчетов.Типовой.Вспомогательный);
Запросы.ОСВ_БУ.УстановитьПараметр("Активный", ВидСчета.Активный);
Запросы.ОСВ_БУ.УстановитьПараметр("Пассивный", ВидСчета.Пассивный);

БУ = Запросы.ОСВ_БУ.Выполнить().Выгрузить();

Операции = БУ.Скопировать(,"Счет");
Операции.Свернуть("Счет");
Операции.Колонки.Добавить("Дата");
Операции.Колонки.Добавить("Номер");
Операции.Колонки.Добавить("ПометкаУдаления");
Операции.Колонки.Добавить("Организация");
Операции.Колонки.Добавить("Автор");
Операции.Колонки.Добавить("Комментарий");
Операции.Колонки.Добавить("Ответственный");
Операции.Колонки.Добавить("Содержание");
Операции.Колонки.Добавить("СтруктурноеПодразделение");
Операции.Колонки.Добавить("ТиповаяОперация");
Операции.Колонки.Добавить("СуммаОперации");

Операции.Колонки.Добавить("Типовой");
Операции.Колонки.Добавить("Налоговый");
Операции.Колонки.Добавить("ЗапрашиваемыеПараметры");

Типовой = Неопределено;
Налоговый = Неопределено;	
ЗапрашиваемыеПараметры = Неопределено;

Выполнить(Алгоритмы.ПодготовитьТаблицыПроводок);
СЦ = 0;
Для Каждого Операция ИЗ Операции Цикл
	СЦ = СЦ + 1;
	Операция.Номер = ПривестиНомерКДлине(Строка(СЦ),11,,"ОСВ-");
	Операция.Дата = ДатаОкончания;
	Операция.ПометкаУдаления = ЛОЖЬ;
	Операция.ТиповаяОперация = Справочники.ТиповыеОперации.ПустаяСсылка();
	Операция.Организация = Организация;
	Операция.Автор = глТекущийПользователь;
	Операция.Комментарий = "Перенос остатов по счету БУ "+Операция.Счет;
	Операция.Содержание = Операция.Комментарий;

	Операция.Типовой = Типовой.СкопироватьКолонки();
	Операция.Налоговый = Налоговый.СкопироватьКолонки();
	Операция.ЗапрашиваемыеПараметры = ЗапрашиваемыеПараметры.СкопироватьКолонки();
	
	Строки = БУ.НайтиСтроки(Новый Структура("Счет", Операция.Счет));
	ТЧ = Операция.Типовой;
	СуммаОперации = 0;
	Выполнить(Алгоритмы.ПолучитьПроводки);
	Операция.СуммаОперации = СуммаОперации;
КонецЦикла;

ВыборкаДанных = Операции;

После этого данные бух. учета у меня сели нормально.

Остались регистры накопления. Начну с правила выгрузки данных. т.к. ПКО зависит него. Назвал его "ОстаткиРегистрыНакопления". Они так же выгружаются по произвольному алгоритму Событие "ПередВыгрузкой" содержит следующий код:

ВыборкаДанных = Новый ТаблицаЗначений;
ВыборкаДанных.Колонки.Добавить("Автор");
ВыборкаДанных.Колонки.Добавить("Комментарий");
ВыборкаДанных.Колонки.Добавить("Организация");
ВыборкаДанных.Колонки.Добавить("Ответственный");
ВыборкаДанных.Колонки.Добавить("Дата");
ВыборкаДанных.Колонки.Добавить("Номер");
ВыборкаДанных.Колонки.Добавить("ТаблицаРегистровНакопления");

Запрос = Новый Запрос;
Имена = Новый Структура;

Запрос.УстановитьПараметр("Дата", ДатаОкончания+1);

Для Каждого Рег ИЗ Метаданные.РегистрыНакопления Цикл
	Если Рег.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Обороты Тогда
		Продолжить;			
	КонецЕсли;
	
	Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрНакопления."+Рег.Имя+".Остатки(&Дата)";
	Результат = Запрос.Выполнить();
	Если НЕ Результат.Пустой() Тогда
		Поля = "";
		Для Каждого Изм ИЗ Рег.Измерения Цикл
			Поля = Поля + Изм.Имя+",";
		КонецЦикла;
		Для Каждого Рес ИЗ Рег.Ресурсы Цикл
			Поля = Поля + Рес.Имя+"Остаток КАК "+Рес.Имя+",";
		КонецЦикла;
		
		Поля = Лев(Поля,СтрДлина(Поля)-1);
		Имена.Вставить(Рег.Имя,Поля);
		ВыборкаДанных.Колонки.Добавить(Рег.Имя);
	КонецЕсли;
КонецЦикла;

Стр = ВыборкаДанных.Добавить();
Стр.ТаблицаРегистровНакопления = Новый ТаблицаЗначений;
Стр.ТаблицаРегистровНакопления.Колонки.Добавить("Имя");
Стр.ТаблицаРегистровНакопления.Колонки.Добавить("Представление");

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

Стр.Номер = "ОР-00000001";
Стр.Дата = ДатаОкончания;
Стр.Автор = глТекущийПользователь;
Стр.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь,"ОсновнаяОрганизация");
Стр.Комментарий = "Перенос остатков регистров накопления";
Стр.Ответственный = глТекущийПользователь;

т.е. у меня выгружаются только те регистры, которые имеют остатки.

Проверил в режиме "предприятие" эту обработку, и посмотрел, какие регистры имеют остатки. Создал ПКО для документ "КорректировкаЗаписейРегистров". В нем объект источник так же не указан.

В правила конвертации свойств добавил только те таблицы, которые мне нужны. При настройке ПКС для регистров необходимо снять галочки с реквизитов. т.к. по ним мы в любом случае не получим остатки, соответственно их переносить не нужно. Получилось вот такая картина На этом настройка закончилась, перенос данных отработал и все жили долго и счастливо :) А базы настроили на регулярную резервную архивацию на дисках, не связанных с диском БД!!!

Конвертация данных

См. также

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7777    57    22    

66

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8844    42    5    

73

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10431    36    24    

61

SALE! 35%

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3120 руб.

14.01.2013    187987    1140    0    

912

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32671    106    152    

73

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72789    626    45    

84

Инструменты администратора БД Системный администратор Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62817    94    59    

79

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    9832    7    4    

15
Отзывы
9. ixijixi 1913 09.06.17 12:17 Сейчас в теме
(8) А можно было бы управиться за четверть часа
Консоль запросов -> Запрос к остаткам регистра -> Вывести список в табличный документ -> Загрузка данных из табличного документа в Документ.ОперацияБух или КорректировкаЗаписейРегистров

Тут на ИС есть инструменты, которые загружают движения РН
ВикторП; +1 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. trntv 25 08.06.17 09:43 Сейчас в теме
Почему ничего не написано про "Тестирование и исправление" из конфигуратора. К чему приводило, чем не подошло.
4. ermek6 22 08.06.17 18:19 Сейчас в теме
(1)
При тестировании база вылетала с той же ошибкой
2. iskdv 08.06.17 09:47 Сейчас в теме
начать с физики "Чек ДБ ФЛ"
5. ermek6 22 08.06.17 18:20 Сейчас в теме
(2) Да. Тоже была первая мысль. Но она ошибку не увидела
3. nk25 08.06.17 14:44 Сейчас в теме
6. ermek6 22 08.06.17 18:23 Сейчас в теме
(3)Нет. Если честно, то даже не искал особо. Да и способ вряд ли подошел бы.
Документ используется, а посему удалять объект конфигурации -- это не наш метод
Судя по тому, что по разным видам оборотов за один и тот же период выдавались разные суммы, были аналогичные проблемы и с служебными таблицами.

Причем картина такая, что неправильные данные подходили бухгалтеру, а вот правильные -- нет.
Это обнаружилось в новой базе, после переноса всех документов с движениями. В ней данные совпадали, и были не подходящими :)
7. nk25 09.06.17 06:05 Сейчас в теме
(6) сколько в итоге потратил времени на перенос?
8. ermek6 22 09.06.17 11:23 Сейчас в теме
(7) Делал в 2 подхода. Каждый часа по 3
9. ixijixi 1913 09.06.17 12:17 Сейчас в теме
(8) А можно было бы управиться за четверть часа
Консоль запросов -> Запрос к остаткам регистра -> Вывести список в табличный документ -> Загрузка данных из табличного документа в Документ.ОперацияБух или КорректировкаЗаписейРегистров

Тут на ИС есть инструменты, которые загружают движения РН
ВикторП; +1 Ответить
14. nvv1970 22.10.17 12:43 Сейчас в теме
(6)
по разным видам оборотов за один и тот же период выдавались разные суммы
Чтобы не задаваться такими вопросами нужно понимать как 1с хранит итоги и какие запросы (с какой периодичностью) их используют.
Цифры итогов не должны соответствовать бухгалтеру! Они должны соответствовать движениям! А уж где лишние движения - бухи и сами разберутся.
ИМХО конвертация - самый сложный метод для решения такого рода задач. SQL - наше все. Как минимум Select, Update, Delete должен уметь использовать любой 1с программист. Необычных случаев, сбоев в работе баз хватает. Делать какие-то глобальные переливки данных через 1с - нонсенс.
10. webester 26 10.06.17 09:29 Сейчас в теме
Странно, что никто никто не написал, что автору надо настроить бекапы. КЭПы в отпуска, что ли уехали.
nvv1970; BomjBandit; +2 Ответить
11. echo77 1906 11.06.17 16:39 Сейчас в теме
У меня что-то с глазами или шрифты во всех формах имеют некий другой размер?
12. ixijixi 1913 13.06.17 11:22 Сейчас в теме
13. ermek6 22 13.06.17 18:21 Сейчас в теме
(11) Да просто я под убунтой сижу. специально по мельче сделал, что бы больше инфы влезало
Оставьте свое сообщение