Универсальный поиск и замена дублирующихся элементов справочников (управляемое и обычное приложение) с учетом общих реквизитов

26.06.14

Задачи пользователя - Поиск данных

Короче, обработка взята в http://infostart.ru/public/204468/
Добавлена замена в общих реквизитах справочников и документов. Выкладываю, ибо может кому нужно будет срочно. В описании есть код, который можно вставить в исходную обработку.
З.Ы. Для всех, кто скажет, что поиск и замену можно использовать типовую, в обычном приложении: если у вас есть подписки, методы которых лежат в модулях, в которых запрещен вызов сервера - у вас скорее всего возникнет необходимость использовать обработку в управляемом приложении.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Поиск и замена дублирующихся элементов с учетом общих реквизитов
.epf 34,73Kb ver:1.0
239 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Возникла необходимость удалить дубли в справочнике. Взял обработку //infostart.ru/public/204468/


Однако, в конфигурации есть общие реквизиты, в которых так же нужно произвести замену. Пришлось добавить в код небольшие изменения: в процедуре, по сути, изменена одна процедура. Вот ее код. Может, кому пригодится.

 

&НаСервере
Функция ВыполнитьЗаменуЭлементовНаСервере(ПравильныйЭлемент, МассивСсылокПоиска = Неопределено)

Если МассивСсылокПоиска = Неопределено Тогда
ТаблицаСсылок = Неопределено;
ВыполнитьПоискСсылок(Ложь, ТаблицаСсылок);
Иначе
ТаблицаСсылок = НайтиПоСсылкам(МассивСсылокПоиска);
КонецЕсли;

БылиИсключения = Ложь;
Если ВыполнятьВТранзакции Тогда
НачатьТранзакцию();
КонецЕсли;
ОбрабатываемаяСсылка = Неопределено;

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

Для Каждого РегистрБухгалтерии ИЗ Метаданные.РегистрыБухгалтерии Цикл
ПараметрыЗамены.Вставить(РегистрБухгалтерии.Имя+"Субконто", РегистрБухгалтерии.ПланСчетов.МаксКоличествоСубконто);
ПараметрыЗамены.Вставить(РегистрБухгалтерии.Имя+"Корреспонденция", РегистрБухгалтерии.Корреспонденция); 
КонецЦикла;

ПараметрыЗамены.Вставить("Объект", Неопределено); 

//Поймем, какие общие реквизиты подходят по типу и сделаем из них массив
ОбщиеРеквизиты = Новый Массив;

Для Инд = 0 По Метаданные.ОбщиеРеквизиты.Количество() - 1 Цикл 

Если Не Метаданные.ОбщиеРеквизиты[Инд].Тип.СодержитТип(ТипЗнч(ПравильныйЭлемент)) Тогда 

Продолжить;
КонецЕсли;

ОбщиеРеквизиты.Добавить(Метаданные.ОбщиеРеквизиты[Инд]);
КонецЦикла;
//

Для Каждого СтрокаТаблицы Из ТаблицаСсылок Цикл

Ссылка = СтрокаТаблицы.Ссылка;

Если ОбрабатываемаяСсылка <> СтрокаТаблицы.Данные Тогда
Если ОбрабатываемаяСсылка <> Неопределено и ПараметрыЗамены.Объект <> Неопределено Тогда

Если ОтключатьКонтрольЗаписи Тогда
ПараметрыЗамены.Объект.ОбменДанными.Загрузка = Истина;
КонецЕсли;

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

КонецЕсли;


Если Метаданные.Документы.Содержит(СтрокаТаблицы.Метаданные) Тогда

Если ПараметрыЗамены.Объект = Неопределено Тогда
ПараметрыЗамены.Объект = СтрокаТаблицы.Данные.ПолучитьОбъект();
КонецЕсли;

Для Каждого Реквизит Из СтрокаТаблицы.Метаданные.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) И ПараметрыЗамены.Объект[Реквизит.Имя] = Ссылка Тогда
ПараметрыЗамены.Объект[Реквизит.Имя] = ПравильныйЭлемент;
КонецЕсли;
КонецЦикла;

//Поймем, нужно ли менять значение в общем реквизите
Для Инд = 0 По ОбщиеРеквизиты.Количество() - 1 Цикл 
ОРеквизит = ОбщиеРеквизиты[Инд];
ЭлементСостава = ОРеквизит.Состав.Найти(СтрокаТаблицы.Данные.Метаданные());
Если Не ЭлементСостава = Неопределено И ЭлементСостава.Использование = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Использовать Тогда 
ПараметрыЗамены.Объект[ОРеквизит.Имя] = ПравильныйЭлемент;
КонецЕсли;
КонецЦикла;

Для Каждого ТЧ ИЗ СтрокаТаблицы.Метаданные.ТабличныеЧасти Цикл
Для Каждого Реквизит Из ТЧ.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда
СтрокаТабЧасти = ПараметрыЗамены.Объект[ТЧ.Имя].Найти(Ссылка, Реквизит.Имя);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Реквизит.Имя] = ПравильныйЭлемент;
СтрокаТабЧасти = ПараметрыЗамены.Объект[ТЧ.Имя].Найти(Ссылка, Реквизит.Имя);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;

Для Каждого Движение ИЗ СтрокаТаблицы.Метаданные.Движения Цикл

ЭтоДвижениеРегистраБухгалтерии = Метаданные.РегистрыБухгалтерии.Содержит(Движение);
ЕстьКорреспонденция = ЭтоДвижениеРегистраБухгалтерии и ПараметрыЗамены[Движение.Имя + "Корреспонденция"];

НаборЗаписей = ПараметрыЗамены.Объект.Движения[Движение.Имя];
НаборЗаписей.Прочитать();
НадоЗаписывать = Ложь;
ТаблицаНабора = НаборЗаписей.Выгрузить();
Для Каждого Измерение ИЗ Движение.Измерения Цикл
Если Измерение.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда
Если ЕстьКорреспонденция Тогда
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя + "ДТ");
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Измерение.Имя + "ДТ"] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя + "ДТ");
КонецЦикла;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя + "КТ");
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Измерение.Имя + "КТ"] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя + "КТ");
КонецЦикла;
Иначе

СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Измерение.Имя] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя);
КонецЦикла;
КонецЕсли;
КонецЕсли; 
КонецЦикла;

Если Метаданные.РегистрыСведений.Содержит(Движение) Тогда
Для Каждого Ресурс ИЗ Движение.Ресурсы Цикл
Если Ресурс.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Ресурс.Имя);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Ресурс.Имя] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Ресурс.Имя);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;

Для Каждого Реквизит ИЗ Движение.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Реквизит.Имя);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Реквизит.Имя] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Реквизит.Имя);
КонецЦикла;
КонецЕсли;
КонецЦикла;

Если Метаданные.РегистрыБухгалтерии.Содержит(Движение) Тогда

Для ИндексСубконто = 1 по ПараметрыЗамены[Движение.Имя + "Субконто"] Цикл
Если ЕстьКорреспонденция Тогда
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоДт"+ИндексСубконто);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти["СубконтоДт"+ИндексСубконто] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоДт"+ИндексСубконто);
КонецЦикла;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоКт"+ИндексСубконто);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти["СубконтоКт"+ИндексСубконто] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоКт"+ИндексСубконто);
КонецЦикла; 
Иначе 
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "Субконто"+ИндексСубконто);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти["Субконто"+ИндексСубконто] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "Субконто"+ИндексСубконто);
КонецЦикла; 
КонецЕсли; 
КонецЦикла; 
КонецЕсли;


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


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

Для Каждого Измерение ИЗ Последовательность.Измерения Цикл
Если Измерение.Тип.СодержитТип(ТипЗнч(Ссылка)) И НаборЗаписи[0][Измерение.Имя]=Ссылка Тогда
НаборЗаписи[0][Измерение.Имя] = ПравильныйЭлемент;
НадоЗаписывать = Истина;
КонецЕсли;
КонецЦикла; 
Если НадоЗаписывать Тогда
Если ОтключатьКонтрольЗаписи Тогда
НаборЗаписи.ОбменДанными.Загрузка = Истина;
КонецЕсли;
Попытка
НаборЗаписи.Записать();
Исключение
БылиИсключения = Истина;
Если ВыполнятьВТранзакции Тогда
Возврат ВыполнитьОткат();
КонецЕсли;
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецЦикла;



ИначеЕсли Метаданные.Справочники.Содержит(СтрокаТаблицы.Метаданные) Тогда

Если ПараметрыЗамены.Объект = Неопределено Тогда
ПараметрыЗамены.Объект = СтрокаТаблицы.Данные.ПолучитьОбъект();
КонецЕсли;

Если СтрокаТаблицы.Метаданные.Владельцы.Содержит(Ссылка.Метаданные()) И ПараметрыЗамены.Объект.Владелец = Ссылка Тогда
ПараметрыЗамены.Объект.Владелец = ПравильныйЭлемент;
КонецЕсли;

Если СтрокаТаблицы.Метаданные.Иерархический И ПараметрыЗамены.Объект.Родитель = Ссылка Тогда
ПараметрыЗамены.Объект.Родитель = ПравильныйЭлемент;
КонецЕсли;

Для Каждого Реквизит Из СтрокаТаблицы.Метаданные.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) И ПараметрыЗамены.Объект[Реквизит.Имя] = Ссылка Тогда
ПараметрыЗамены.Объект[Реквизит.Имя] = ПравильныйЭлемент;
КонецЕсли;
КонецЦикла;

//Поймем, нужно ли менять значение в общем реквизите
Для Инд = 0 По ОбщиеРеквизиты.Количество() - 1 Цикл 
ОРеквизит = ОбщиеРеквизиты[Инд];
ЭлементСостава = ОРеквизит.Состав.Найти(СтрокаТаблицы.Данные.Метаданные());
Если Не ЭлементСостава = Неопределено И ЭлементСостава.Использование = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Использовать Тогда 
ПараметрыЗамены.Объект[ОРеквизит.Имя] = ПравильныйЭлемент;
КонецЕсли;
КонецЦикла;

Для Каждого ТЧ ИЗ СтрокаТаблицы.Метаданные.ТабличныеЧасти Цикл
Для Каждого Реквизит Из ТЧ.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда
СтрокаТабЧасти = ПараметрыЗамены.Объект[ТЧ.Имя].Найти(Ссылка, Реквизит.Имя);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Реквизит.Имя] = ПравильныйЭлемент;
СтрокаТабЧасти = ПараметрыЗамены.Объект[ТЧ.Имя].Найти(Ссылка, Реквизит.Имя);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;

ИначеЕсли Метаданные.ПланыВидовХарактеристик.Содержит(СтрокаТаблицы.Метаданные)
ИЛИ Метаданные.ПланыСчетов.Содержит(СтрокаТаблицы.Метаданные)
ИЛИ Метаданные.ПланыВидовРасчета.Содержит(СтрокаТаблицы.Метаданные)
ИЛИ Метаданные.Задачи.Содержит(СтрокаТаблицы.Метаданные)
ИЛИ Метаданные.БизнесПроцессы.Содержит(СтрокаТаблицы.Метаданные) Тогда

Если ПараметрыЗамены.Объект = Неопределено Тогда
ПараметрыЗамены.Объект = СтрокаТаблицы.Данные.ПолучитьОбъект();
КонецЕсли;

Для Каждого Реквизит Из СтрокаТаблицы.Метаданные.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) И ПараметрыЗамены.Объект[Реквизит.Имя] = Ссылка Тогда
ПараметрыЗамены.Объект[Реквизит.Имя] = ПравильныйЭлемент;
КонецЕсли;
КонецЦикла;

Для Каждого ТЧ ИЗ СтрокаТаблицы.Метаданные.ТабличныеЧасти Цикл
Для Каждого Реквизит Из ТЧ.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда
СтрокаТабЧасти = ПараметрыЗамены.Объект[ТЧ.Имя].Найти(Ссылка, Реквизит.Имя);
Пока СтрокаТабЧасти <> Неопределено Цикл
СтрокаТабЧасти[Реквизит.Имя] = ПравильныйЭлемент;
СтрокаТабЧасти = ПараметрыЗамены.Объект[ТЧ.Имя].Найти(Ссылка, Реквизит.Имя);
КонецЦикла; 
КонецЕсли;
КонецЦикла;
КонецЦикла; 

ИначеЕсли Метаданные.Константы.Содержит(СтрокаТаблицы.Метаданные) Тогда

Константы[СтрокаТаблицы.Метаданные.Имя].Установить(ПравильныйЭлемент);


ИначеЕсли Метаданные.РегистрыСведений.Содержит(СтрокаТаблицы.Метаданные) Тогда 

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

Если ОтключатьКонтрольЗаписи Тогда
НаборЗаписей.ОбменДанными.Загрузка = Истина;
КонецЕсли;


Если Не ВыполнятьВТранзакции Тогда
НачатьТранзакцию();
КонецЕсли;

Попытка

НаборЗаписей.Записать();

Для Каждого Колонка ИЗ ТаблицаНабора.Колонки Цикл
Если ТаблицаНабора[0][Колонка.Имя] = Ссылка Тогда
ТаблицаНабора[0][Колонка.Имя] = ПравильныйЭлемент;
Если СтруктураИзмерений.Свойство(Колонка.Имя) Тогда
НаборЗаписей.Отбор[Колонка.Имя].Установить(ПравильныйЭлемент);
КонецЕсли;

КонецЕсли;
КонецЦикла;

НаборЗаписей.Загрузить(ТаблицаНабора);

НаборЗаписей.Записать();

Если Не ВыполнятьВТранзакции Тогда
ЗафиксироватьТранзакцию();
КонецЕсли; 

Исключение

Если ВыполнятьВТранзакции Тогда
БылиИсключения = Истина;
Возврат ВыполнитьОткат();
Иначе
ОтменитьТранзакцию();
КонецЕсли;

КонецПопытки;

Иначе
Сообщить("Ссылки типа "+СтрокаТаблицы.Метаданные+" не заменяются!!");
КонецЕсли;
КонецЦикла;

Если ПараметрыЗамены.Объект <> Неопределено Тогда
Если ОтключатьКонтрольЗаписи Тогда
ПараметрыЗамены.Объект.ОбменДанными.Загрузка = Истина;
КонецЕсли;
Попытка
ПараметрыЗамены.Объект.Записать();
Исключение
БылиИсключения = Истина;
Если ВыполнятьВТранзакции Тогда
Возврат ВыполнитьОткат();
КонецЕсли;
КонецПопытки;
КонецЕсли;

Если ВыполнятьВТранзакции Тогда
Если БылиИсключения Тогда
ОтменитьТранзакцию();
Иначе
ЗафиксироватьТранзакцию();
КонецЕсли; 
КонецЕсли;
Возврат Не БылиИсключения;

КонецФункции

Вступайте в нашу телеграмм-группу Инфостарт

Удаление дубли общий реквизит

См. также

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

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

180000 руб.

05.09.2025    5261    2    1    

4

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    5329    17    1    

20

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

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

13420 руб.

14.05.2012    172186    360    253    

589

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    47133    32    15    

50

Учетные задачи Поиск данных Подбор и обработка объектов 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

1.обработка позволяет автоматически вычислить дубли и привести их к единому наименованию во всех документах. 2.так же есть возможность в документах поменять счета учета для номенклатуры. Например разные бухгалтера оформляют поступление одного и того же товара - один занес на 10.01, второй на 41.01 в результате в ОСВ у нас минусы. В обработке есть возможность наглядно увидеть такие ошибки и тут же их поправить не бегая по всем документам. Достаточно поставить галочку у номенклатуры и указать счет учета который надо найти и счет учета на который надо его заменить. Обработка сама вычислит документы в которых номенклатура с галочкой была задействована и заменит счета учета. Что бы не было излишнего изменения документов, в обработке указываются типы документов, где операция замены счета разрешена (например Поступление ТМЦ, Реализация, Отчет о розничных продажах, возврат покупателю итд.)

7320 руб.

05.06.2026    625    2    0    

4

Поиск данных Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта Стажер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Беларусь Россия Казахстан Платные (руб)

Встройте искусственный интеллект прямо в вашу 1С за один вечер. «Цифровой сотрудник» - это чат с нейросетью внутри привычного интерфейса 1С, который умеет отвечать не «в общем», а по вашим данным: обучите его на регламентах, инструкциях и прайсах компании, подключите к данным информационной базы - и получите ассистента, который консультирует бухгалтера по учёту, отвечает менеджеру по прайсу и достаёт цифры из базы по запросу на обычном русском языке. Поддерживаются OpenAI, DeepSeek, Qwen и локальные LLM - включая вариант, когда данные вообще не покидают ваш контур.

3660 руб.

03.08.2026    352    1    0    

2

Поиск данных Программист Пользователь 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Умное сравнение табличных документов с визуальной подсветкой. В отличие от стандартного сравнения, обработка ищет отличия по ключевому значению, игнорируя сдвиги строк. Результат — цветовая маркировка добавленных, удаленных и измененных строк прямо в документе + точный лог расхождений по каждой ячейке.

1 стартмани

27.04.2026    1659    17    war41k    5    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pvb2003 05.02.15 00:41 Сейчас в теме
Проблемка - 8.3.5.1383 и БП 3.0.37.35
Попытка обработать задвоившийся справочник "Организации" выдает "Неверное имя колонки" ... как бороться?
2. AlgoritmS 06.04.15 13:00 Сейчас в теме
(1) такая же ошибка :(
3. Akuji 22 03.11.15 12:44 Сейчас в теме
По наименованию с учетом владельца как сделать замену?
Для отправки сообщения требуется регистрация/авторизация