Найти дубли в регистре сведений 1с
Если за базой не следить, вовремя не подчищать, то неизбежно дублирование информации. Наиболее часто дублируются номенклатура и, конечно же, контрагенты.
В 1С:Бухгалтерия 8.3 уже встроен механизм для поиска и устранения дублей. Это универсальная обработка "Поиск и удаление дублей", которая подходит для поиска дубликатов не только в номенклатуре и контрагентах, но и в других справочниках.
Рассмотрим её использование на примере справочника "Контрагенты".
Ситуация
1. Итак, у нас есть контрагент "Аэрофлот" в папке покупатели.
2. И его дубликат (полная копия), случайно заведенная в папке поставщики. ИНН у обоих элементов совершенно одинаковый.
Наша задача воспользоваться обработкой по поиску и замене дублей так, чтобы она нашла эти элементы, указала (сопоставив их ИНН), что один дублирует другого и объединила их в один элемент.
Открываем обработку
3. Чтобы открыть обработку для поиска дублей нужно зайти в меню "Функции для технического специалиста. "( Если у вас его нет - вам сюда. ).
И выбрать среди всех обработок "Поиск и удаление дублей".
Настраиваем условия
4. Форма обработки перед нами. Укажем область для поиска дублей, нажав на три точки в поле "Искать в".
5. Выберем "Контрагенты" и нажмем кнопку "Выбрать".
6. Нажмем на кнопку троеточие в поле "Пометка удаления равно нет":
7. И добавим ещё одно правило отбора (кнопка "Добавить новый элемент").
8. В качестве поля для отбора выберем .
10. В качестве вида сравнения укажем "Заполнено" и нажмём кнопку ОК:
Таким образом мы будем осуществлять поиск среди всех контрагентов, у которых заполнен ИНН.
11. Осталось задать критерий для сравнения. Нажмите пункт "Наименование совпадает по похожим словам".
12. В открывшихся правилах поиска дублей снимите галку рядом с полем "Наименование".
Ищем дубли
14. Внизу окна нажмите кнопку "Найти дубли".
15. А вот и наш аэрофлот. Вернее два аэрофлота. И места использования каждого из них. Тот аэрофлот, рядом с которым зеленая стрелка, 1С считает главным и при удалении дублей останется именно он. Если выбор 1С оказался ошибочен - выделите другой элемент и нажмите кнопку "Отметить как оригинал". Установите галки рядом с элементами, которые по-вашему мнению являются дублями главных элементов. Теперь нажмите кнопку "Удалить дубли".
16. Обработка рапортует нам, что дубли объединены в один элемент и теперь вместо двух аэрофлотов у нас один, что и требовалось получить!
Мы молодцы, на этом всё
Кстати, подписывайтесь на новые уроки.
Важное замечание
Друзья, отдельно хочу заострить внимание на моменте, который ставит в тупик многих пользователей (я и сам не сразу это понял).
Обработка позволяет сравнивать поля друг с другом всего по двум правилам (пункт "Сравнивать"):
- полное совпадение
- совпадение по похожим словам, причём мы не можем настраивать эту похожесть
Всё. Других вариантов нет.
Это значит, что мы не можем настроить обработку на поиск дублей по своему принципу.
Например, нам не удастся настроить её так, чтобы она посчитала дублями все элементы, в которых встречается нужное нам слово.
Мы можем только сказать: ищи нам дубли среди такого-то справочника, при этом считай дублями те элементы у которых совпадают такие-то поля или полностью или похожи друг на друга. При этом как именно они похожи - решай сама.
Поле "Отбирать", которое и вводит всех в заблуждение, потому что оно расположено первым, предназначено для отбора элементов, которые обработка уже посчитала дублями.
То есть, если вы в поле "Отбирать" поставили "Все элементы" и дубли не нашлись - смысл в настройке поля "Отбирать" нет. Оно позволяет только сузить результаты, но не расширить.
Уфф. надеюсь я кому-то помог сэкономить время. До меня самого почти час доходило что же я делаю не так.
А тем кому нужен более настраиваемый поиск по дублям я советую подсистему "Инструменты разработчика".
Только нужно учесть, что она уже для очень опытных пользователей. Начинающим может быть нелегко с ней разобраться.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Разберем один из объектов, при помощи которого можно записывать данные в регистр сведений 1С. Набор записей регистра сведений. Если при помощи менеджера записей регистра сведений мы могли работать в регистре только с одной записью, то при помощи набора можно создавать (удалять, редактировать) любое количество записей.
Для создания набора записи регистра сведений необходимо использовать метод СоздатьНаборЗаписей менеджера регистра сведений.
МенеджерЦеныНаТопливо = РегистрыСведений . ЦеныНаТопливо ;
НаборЗаписей = МенеджерЦеныНаТопливо . СоздатьНаборЗаписей ();
После выполнения данного метода будет создан набор записей регистра сведений, т.е. переменная НаборЗаписей кода выше имеет тип РегистрСведенийНаборЗаписей.ЦеныНаТопливо. Причем он будет создан абсолютно пустым!
Заметьте, набор записей можно создать или в серверном контексте, или в клиентском контексте, но в режиме толстого клиента. Под тонким клиентом, код приведенный в этой статье работать не будет!
Вы можете работать с этим набором записей как с коллекцией: добавлять, удалять запись, очищать всю коллекцию. Причем, метод СоздатьНаборЗаписей создает пустой набор записей. В нашей переменной НаборЗаписей нет ни каких данных, даже если они имеются сейчас в регистре. И если мы запишем этот набор, то все данные, которые есть у нас в регистре будет уничтожены. Т.е. код ниже приведет к полной очистке моего регистра сведений.
МенеджерЦеныНаТопливо = РегистрыСведений . ЦеныНаТопливо ;
НаборЗаписей = МенеджерЦеныНаТопливо . СоздатьНаборЗаписей ();
Записать() – это метод объекта набор записей регистра сведений, которые записывает данные из созданного набора непосредственно в регистр сведений. Причем данный метод имеет параметр Замещать типа Булево, который по умолчанию всегда равен Истине. Если данный параметр принимает значение Истина, то после записи набор записей из созданного объекта заместит данные в регистре сведений. Поскольку мы не создали ни какие данные (наш набор пуст), то у нас просто все текущие записи в регистре сведений удалятся. Если мы не хотим этого, то нужно просто в параметр Замещать передать Ложь.
МенеджерЦеныНаТопливо = РегистрыСведений . ЦеныНаТопливо ;
НаборЗаписей = МенеджерЦеныНаТопливо . СоздатьНаборЗаписей ();
НаборЗаписей . Записать (Ложь);
В этом случае записи (которых нет) из набора не заместят записи из регистра, и данные не очистятся.
Если мы хотим создать новую запись, то необходимо воспользоваться методом Добавить() набора записей регистра сведений, который создает новую запись в нашем наборе.
МенеджерЦеныНаТопливо = РегистрыСведений . ЦеныНаТопливо ;
НаборЗаписей = МенеджерЦеныНаТопливо . СоздатьНаборЗаписей ();
НоваяЗапись = НаборЗаписей . Добавить ();
НоваяЗапись . Период = ТекущаяДата ();
НоваяЗапись . ВидТоплива = ВидТоплива ;
НоваяЗапись . ПоставщикТоплива = ПоставщикТоплива ;
НоваяЗапись . Цена = Цена ;
НаборЗаписей . Записать (Ложь);
Данный код создаст новую запись. В своем коде я работаю с регистром сведений, который создал для предыдущих статей.
Если мы попытаемся еще раз записать точно такой же набор данных, то возникнет ошибка «Запись с такими ключевыми полями существует!»
Причем такой проблемы ни когда не будет при работе с менеджером регистра сведений, так как при работе с менеджером мы получаем данные по измерениям и просто перезаписываем ресурсы и реквизиты.
И обратите внимание, если мы будет записывать с замещением, то проблем с ключевыми полями также не будет, поскольку мы своей записью заместим все имеющиеся данные, т.е. они будут очищены.
При помощи объекта набор записей можно записать в регистр практически неограниченное количество записей. Например, я сделаю выборку по поставщикам топлива и в цикле создам записи нашего набора.
МенеджерЦеныНаТопливо = РегистрыСведений . ЦеныНаТопливо ;
НаборЗаписей = МенеджерЦеныНаТопливо . СоздатьНаборЗаписей ();
Выборка = Справочники . ПоставщикиТоплива . Выбрать ();
Пока Выборка . Следующий () Цикл
НоваяЗапись = НаборЗаписей . Добавить ();
НоваяЗапись . Период = ТекущаяДата ();
НоваяЗапись . ВидТоплива = ВидТоплива ;
НоваяЗапись . ПоставщикТоплива = Выборка . Ссылка ;
НоваяЗапись . Цена = Цена ;
КонецЦикла;
НаборЗаписей . Записать (Ложь);
В этом коде мы создадим несколько записей набора, а потом запишем весь наш набор в регистр сведений.
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
Цель данной статьи – помочь начинающим разработчикам немного лучше разобраться с таким важным аспектом программирования на платформе 1С 8.3 как запросы.
Разберем на простом примере, как с помощью такого инструмента как консоль запросов найти дублирующие друг друга записи в справочнике 1С 8.3. Согласитесь, ведь зачем перегружать справочник лишними элементами, если у нас уже есть элемент с такими реквизитами.
Пример будет показан на самой простой конфигурации 1С 8.3. За основу была взята учебная конфигурация, с помощью которой специалисты сдают экзамен. После чего в справочнике номенклатура был добавлен дополнительный реквизит «Производитель». Теперь откроем режим предприятия, добавим в справочник «Номенклатура» по три дубля двух наименований (причем у двух из них будет также совпадать и производитель).
Откроем консоль запросов и для начала напишем следующий текст:
В данном запросе происходит группировка выборки по названию, а к полю «Ссылка» применяете функцию «Количество» 1С.
Тем самым узнаем, сколько с таким названием элементов справочника.
Но нас не интересуют «одиночные» элементы, т.е. те названия у которых одна ссылка. Поэтому необходимо использовать оператор «Имеющие», который применяем к функции «Количество», ставя условие что результат и вывод функции больше одного. Таким образом мы получили по три номенклатуры с одинаковым наименованием.
2. Добавление поиска по производителю
Теперь попробуем немного усложнить запрос. Добавили поиск и по производителю. Все что нужно сделать, это добавить в выборку поле «Производитель», и так же как и с наименованием сгруппировать по этому полю. В итоге запрос 1С 8.3 будет выглядеть следующим образом:
Теперь выполним его и проверим полученный результат:
Таким образом можно построить и гораздо более сложные запросы для поиска дублей. Нужно всего лишь добавить в выборку новое поле и сгруппировать.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
При работе в программах 1С зачастую создаются дубли — одинаковые документы или элементы справочников. Для быстрого выявления дублей используется обработка 1С Поиск и удаление дублей. Рассмотрим, как работать с обработкой на примере 1С:Бухгалтерия предприятия 8.3 и 8.2.
Поиск и удаление дублей 1С 8.3
Дубли приводят к путанице и ошибкам. Типичный пример — одни и те же контрагенты или номенклатура. Для исправления таких ситуаций требуется выполнить действия:
- Найти дубли.
- Определить верный элемент.
- Заменить дубли на оригинал в объектах программы.
- Удалить дубли.
Разберем поиск и удаление дублей 1С 8.3 Бухгалтерия с помощью обработки 1С Поиск и удаление дублей .
Чтобы запустить поиск дублей в 1С 8.3 зайдите в меню Администрирование – Настройки программы – Обслуживание .
Раскройте пункт Корректировка данных и перейдите по ссылке Поиск и удаление дублей .
В поле Искать в нажмите на значок с тремя точками и выберите документ или справочник для поиска дублей.
Поиск дублей в 1С 8.3 Бухгалтерия
Для примера выберем справочник Контрагенты .
Затем определите критерии сравнения по ссылке.
Искать можно по наименованию контрагентов, ИНН, КПП и другим параметрам.
Слева показываются похожие элементы, справа — в каких документах они встречаются. Элемент, который чаще используется, автоматически считается главным. Рядом с ним отображается значок с синей стрелкой. Вы можете сделать главным другой элемент по кнопке Отметить как оригинал .
Следующий шаг — удаление дублей в 1С 8.3 Бухгалтерия.
Флажками отметьте элементы, которые не являются дублями, чтобы случайно их не удалить. Например, на картинке контрагенты Автотрейд и Евротрейд разные.
После определения настроек нажмите кнопку Удалить дубли .
- все ссылки на документы и другие объекты перенесутся на главный элемент;
- для дублей установится пометка удаления.
Поиск и замена дублей 1С 8.3 выполнены.
Для удаления дублей в 1С 8.3 Бухгалтерия используйте обработку Удаление помеченных объектов в меню Администрирование – Сервис – Удаление помеченных объектов .
Поиск и удаление дублей 1С 8.2
В 1С 8.2 нет встроенной обработки для поиска дублей. Вы можете массово заменить одно значение на другое, если заранее выявили дубли. Для этого скачайте с сайта ИТС обработку Поиск и замена значений .
Откройте обработку в 1С через меню Файл – Открыть .
Укажите, какой объект вы будете заменять и на что именно.
Отобразится список объектов. Для замены нажмите кнопку Выполнить замену значений .
Установите пометку удаления для лишнего элемента и удалите его через меню Операции – Удаление помеченных объектов .
См. также:
Если Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
.Каждый пользователь программы 1С сталкивается с ситуациями, когда нужно удалить.При установке новых и удалении старых Платформ 1С может возникнуть.Рассмотрим как подключать, обновлять, отключать и удалять расширения в ЗУП.
(1 оценок, среднее: 5,00 из 5)
Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете
Большое спасибо за публикацию. С помощью БухЭксперта программы и базы приводим к нормальному виду, удобному пользованию и оптимальному использованию ресурсов ПК!
Уже не в первый раз обращается ко мне клиент с просьбой убрать все доработки из базы. Мол, давно не пользуемся, вообще непонятно, кто делал и зачем. Уже все забыли. А обновлять надо, и надоело тратить на обновление так много времени и денег.
Постараюсь тут описать, как я решил эту проблему.
1) Для начала сохраним конфигурацию поставщика в файл. Конфигурация - Поддержка - Настройка поддержки - Сохранить в файл.
2) Затем полностью снимем конфигурацию с поддержки. Конфигурация - Поддержка - Настройка поддержки - Снять с поддержки.
3) Загрузим полностью сохраненную ранее типовую конфигурацию. Конфигурация - Загрузить конфигурацию из файла.
4) Следующим шагом нужно вычислить проблемные регистры.
Попробуем обновить конфигурацию базы и увидим ошибку. Принять изменения нельзя (кнопка не активна) и написано почему. В моем случае это "ДвоичныеДанныеФайлов. Имеются записи с одинаковыми измерениями." Не закрывая конфигуратор, сразу же заходим в режим предприятия и запускаем мою обработку. Выбираем этот регистр и нажимаем выгрузить. Используя механизм сериализации, данные будут выгружены в xml файл во временный каталог пользователя и регистр будет очищен.
5) Переходим в конфигуратор и пробуем обновить конфигурацию базы данных вновь. У меня еще одна ошибка "НомераЛистовКассовойКниги. Имеются записи с одинаковыми измерениями". Повторяем действия из пункта 4. И делаем до тех пор пока конфигурация не обновится.
После выгрузки создастся каталог с файлами для нужных регистров.
В моем случаем ошибок больше не было. Ругалось только на эти два регистра. После сможете уже принять изменения.
6) Затем нужно восстановить данные очищенных регистров. Открываем режим предприятия, запускаем обработку и нажимаем загрузить.
Интерфейс и смысл обработки очень прост. Данные из проблемных регистров выгружаются в файл (даже картинки) и очищаются. Затем просто восстанавливаются.
По очереди или сразу можете указать имена регистров для выгрузки и очистки. Кнопка "Загрузить" станет активной когда будет создан необходимый каталог с файлами и тем самым станет возможным сделать загрузку.
Если память не изменяет, то сериализатор появился в платформе начиная с версии 8.3.7. Может, и раньше. Следовательно, обработка должна работать на этой и выше версиях платформ.
Специальные предложения
(6) да-да, был такой случай:
- бухгалтер говорит не хочу лишнего платить - верните все к типовой, т.к. никакие эти доработки не используем
- согласно твоей методе сносим измерение вместе СО ВСЕМИ ДАННЫМИ (я так понял обработка делает именно так)
- на следующий день она же орёт, зачем Вы ЭТО удалили))) - ВЕРНИТЕ ВСЁ КАК БЫЛО
конечно же ей подсунули тестовую - т.к. знали что 99% этим закончится
(26)Моя обработка возьмет все данные, скопирует их в файл, затем восстановит. Уже надоело про это писать.
(27) я не хотел Вас обидеть, обработка нужная и полезная.
Просто не очень понял как она их восстановит - если я ставлю регистр сведений на замок и там пропадает мое измерение.
Вот эту ситуацию хотел описать - например есть РС.ТиповойРегистр
Типовое измерение / Мое измерение / Типовой ресурс
Контрагент1 / Машина1 / 1
Контрагент1 / Машина2 / 2
Контрагент1 / Машина3 / 3
После загрузки конфигурации поставщика - пропадает измерение
Далее загружаем данные из файла
Типовое измерение / Типовой ресурс
Контрагент1 / 3
Вот так ведь будет выглядеть РС с данными после этих манипуляций - поправьте пож-та если я ошибаюсь.
Спасибо
(28)не в коем случае я не обиделся. Просто много раз об этом уже писал. Вашу ситуацию, кстати, вообще не рассматривал. По логике будет да как вы сказали. Не проверял. Если ошибку при десириализации не выдаст и восстановит, то свое измерение просто пропустится. Будет время, попробую, отпишусь. Спасибо за наводку.
(28)должен восстановить с одинаковым набором измерений. Просто без вашего измерения. Попробую проверить.
(2) Ну обработка с дублями ничего не делает. Она очищает регистр полностью. А потом просто возвращает к исходному состоянию. С теми ошибочными данными, что были раньше. Смысл этой работы именно вернуться к типовой.
(4) я думал, что при перезаписи регистры становятся без дублей - старые записи перезаписываются новыми согласно измерениям - я так думал, видимо не так.
(9)Нет. Они сначала выгружаются, полностью, в том виде в котором есть. Потом полностью очищаются. Потом нужно принять изменения и загрузить данные регистров вновь. С теме же ошибочными данными, что и ранее. Выгружаются в файл.
Подобные обновления сомнительно вообще делать, т. к. они идут с некоторой потерей данных. Конечно, если клиента это устраивает, то можно и так.
(5) о тех данных, из-за удаления которых стала появляться ошибка "Имеются записи с одинаковыми измерениями"
(13)вы, видимо, не до конца поняли что делает обработка. По итогу работы все данные на месте. Со своими прежними проблемами. Решение этих проблем в этой разработке не рассматривается.
В инструментах разработчика есть функционал, который умеет анализировать и исправлять такие проблемы. Подготовка к изменению структуры БД.
(7) сделайте публикацию, вставьте сюда ссылку на статью - сделайте обзор. я к примеру не в курсе , о чем вы.
(8)Полазав в нете, нашел только это
(с позволения модераторов кину сюда ссылку). Любопытно подсмотреть как у них реализован поиск проблемных регистров. А то думать над этим пока нет времени. Это бы сильно упростило (сделала бы более универсальной) лично мою текущую разработку.
(12)О, Боже. Посмотрел как реализован поиск проблемных регистров. Что-то слишком сложный вариант. Надо искать что-то попроще))
(8) Мне казалось что ИР довольно известны. Все описания есть на сайте, по данному вопросу см. http://devtool1c.ucoz.ru/index/proverka_bazy_dannykh_pered_usecheniem_tipov/0-24 .
По шагам - сначала подготавливаем базу, но не обновляем (т.е. конфигурация сохранена, а кнопка "обновить конфигурацию базы данных" светится). Затем закрываем конфигуратор, запускаем ИР, жмем авто-коррекция. Ир подключится к конфигуратору, увидит различия по регистрам, и предложит варианты действий, останется принять решение.
(16)Не пользовался никогда ИР. Спасибо. Ссылку уже нашел. Уже подсмотрел как реализовано. Можно, конечно, заморочиться и сделать также, но не в рамках этой работы за 1 стармани))
(17) А зачем "делать также"? Это уже реализовано, пользуйтесь. Я повсеместно применял этот механизм, и (к замечанию о сложности) могу сказать - что он гораздо удобнее и проще предложенного. Огромный плюс в том что все регистры видны сразу, а не по-одному. Кроме того, в некоторых случаях сложной реструктуризации описанный в статье подход не применим вовсе. Ждать несколько часов, чтобы увидеть ошибку - "такое себе"..
(18)Моя обработка просто копирует данные и восстанавливает. И все. На премия дарвина я и не претендую. ИР не пользовался никогда. Честно, даже не слышал про это. На УФ тоже есть?
(19) Нет, в УФ только расширение, которое работает в толстом УФ клиенте. Попробуйте, это набор очень удобных механизмов. Я использую ИР уже ~5 лет, и за все это время ни разу не пришлось тратить время на "волшебные велосипеды" - обработок типа "провести эти 10500 документов с отбором по этому контрагенту" и т.п. Там все есть, причем сделано хорошо. Программистом для программистов. Есть описания, есть форум.
Здравствуйте! БУ 3.0.89.38
"Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.
Техническая информация:
Метод объекта не обнаружен (СведенияОВнешнейОбработке)"
?
Спасибо очень помогли! Не загружался CFник, пришлось удалить 2 регистра сведений и через вашу обработку перенес их.
Обработка в коде «ПриСозданииНаСервере» создает каталог кодом:
Каталог = КаталогВременныхФайлов() + "RegisterData";
а в процедуре «СериализоватьРегистр» дополняет его именем файла:
ИмяФайла = Каталог + "\" + ИмяРегистра +"_"++"_"+".xml";
В таком варианте, если запустить обработку сразу на нескольких копиях обновляемой базы, либо запустить повторно перезапись в одной базе - создастся временный файл xml с одинаковым адресом и именем файла, что может привести к затиранию данного файла повторной выгрузкой, либо выгрузкой этого же регистра из другой копии базы. Это является уязвимостью обработки и может привести к потере данных. К тому же, это усложняет возможность редактировать файл выгрузки вручную, поскольку неизвестно место его сохранения.
Аналогично, если выгрузка регистра производится на одном сервере, а загрузка происходит на другом - обработка не работает, потому что на другом сервере не может найти указанный файл, выгруженный на первом сервере.
Гораздо правильнее было бы создать диалог выбора файла для сохраняемого файла xml, чтобы пользователь мог сам управлять промежуточным файлом выгрузки и определяться с его выгрузкой и загрузкой по кнопкам «выгрузить» и «загрузить».
Читайте также: