Имеется реализация под 1С:Предприятие 8.2.
Не смотря на скепсис некоторых участников обсуждения, предыдущий «простой перенос справочников» оказался востребован, при том, что в нем не имелось никаких настроек. Впрочем, это был один из первых моих опытов программирования под 8.1.
Так получилось, что подвернулся клиент, попросивший сделать перенос справочников уже под 8.2. Воспользовавшись случаем, сделал обработку универсальной, добавив возможность настройки переноса, когда требуется переносить данные между неидентичными справочниками.
Структура сопоставления выгруженного справочника с имеющимися в базе настраивается в обработке загрузки на соответствующей закладке. При выборе пользователем сопоставляемого справочника, обработка будет пытаться автоматически сопоставить реквизиты справочника с выгружаемыми данными. Эту настройку можно менять вручную.
Структура сопоставления выгруженного справочника с имеющимися в базе может быть сохранена и автоматически загружена в следующий раз, при переносе такого же справочника. Имя файла структуры сопоставления автоматически будет присвоено такое же, как имя файла переноса справочника, для которого производится настройка, только с расширением ini.
В реализации под 8.1 возможность вызова обработок выгрузки-загрузки из состава конфигурации.
В качестве примера такого вызова реализована пакетная выгрузка справочников из 8.1.
Под 8.2 реализована лишь загрузка со всеми настройками, как и в 8.1. Это не конвертация, а отдельная реализация на управляемых формах. (Кстати, моя первая прога на 8.2, так что поздравьте и не пинайте)
При необходимости использования выгрузки в составе конфигурации без открытия формы, достаточно вставить следующий код:
ОбработкаВыгрузки=ВнешниеОбработки.Создать(ИмяФайлаОбработки);
ОбработкаВыгрузки.ИмяСправочника=ИмяСправочника;
ОбработкаВыгрузки.ИмяФайла=ИмяФайла;
ОбработкаВыгрузки.ВыгрузитьСправочник(ЭлементыФормы.Индикатор);
Индикатор может в параметрах отсутствовать. Это также может быть индикатор с какой-то другой формы.
При необходимости использования загрузки в составе конфигурации без открытия формы, нужно вставить следующий код:
ОбработкаЗагрузки=ВнешниеОбработки.Создать(ИмяФайлаОбработки);
ОбработкаВыгрузки.УстановитьИмяФайла(ИмяФайлаПереносаСправочника);
ОбработкаВыгрузки.ЗагрузитьСправочник(ЭлементыФормы.Индикатор);
Метод УстановитьИмяФайла попытается найти для файла переноса сохраненную структуру сопоставления, и если таковая имеется в каталоге переноса, то загрузит ее.
Если сохраненная структура сопоставления в каталоге переноса отсутствует, то сопоставит выгруженный справочник с имеющимися в базе автоматически.
Возможно использовать реквизиты обработки:
ОбработкаВыгрузки.РежимДобавления
Значения от 0 до 3, соответствуют режимам отработки ситуации, когда в базе имеются элементы справочника с таким же кодом, как у загружаемых.
0 — не добавлять новые элементы
1 — добавлять с новым кодом
2 — изменять имеющиеся
3 — воспринимать, как ошибку
ОбработкаВыгрузки.ТолькоПроверка
Перед загрузкой, обработка выполняет проверку соответствия загружаемых данных со структурой справочника и данными базы. При значении ИСТИНА обработка выполнит лишь проверку, не меняя состав справочников.
ОбработкаВыгрузки.ИгнорироватьОшибки
Если этот параметр выставить в ЛОЖЬ, то обработка будет загружать данные, не смотря на встретившиеся ошибки при проверке. В противном случае, обработка отменит загрузку, если на этапе проверки будут выявлены проблемы.
да… начинаем на снеговике переписывать все что накоплено годами на 7.7…
возьми Универсал и портируй его на 8-ку.. и будет тебе большая спасиба…
(1) Зависть.
А как насчет справочников, имеющих подчиненные ?
Хотелось бы выгружать контрагентов с договорами.
А вообще .. Что только люди не придумают — лишь бы не использовать КД.
(3) Снова пишут про КД… А ты спросил, есть ли КД на 8.2, и всегда ли оно устраивает даже под 8.1? С подчиненными можно выгрузить. Точнее, выгружаем контрагенты и договора. Загружаем 1) Контрагентов 2) Договора 3) Повторно контрагентов в режиме «Изменять имеющиеся». Повторно загружаем, чтобы привязался «Основной договор».
Собственно, не грузятся только справочники с
1) Неуникальными кодами
2) Подчиненные с иерархией групп
Вторые, хотя, загрузятся, но иерархия, скорее всего, собьется.
(1) 8.2 — не снеговик. Это пьяный дед мороз…
(4)
Пункт 2). Договора подчинены КОнтргаентам. Каждый договор имеет поле Владелец .
Как ты загрузишь договора с пустым полем Владелец ?
При использовании команды Объект. Записать() ты получишь ошибку.
Блим. Читаем заново.
1. Загружаем контрагентов
2. Загружаем договора
Если контрагенты уже загружены, то для договоров можно найти владельца по коду при загрузке.
«Если контрагенты уже загружены, то для договоров можно найти владельца по коду при загрузке»
Оно ,конечно , дело твоё. Не скачивал и не проверял , но завернул ты больно хитро. Совершенно непонятно следующее :
Когда по п 2. ты загружаешь элемент справочника Договор, то откуда ты возьмешь код Владельца , чтобы найти его в справочнике Контргаенты.
и затем выполнить команду .Записать() ?
Ты что ? в каждую запись при выгрузке для договора пишешь еще и код Владельца ?
смотреть не стал 🙂 рейтинга не хватает качать все подряд
но я сам сделал так, что в справочнике используемым для переноса
у меня есть поля с родителем и владельцем 🙂 причем туда у меня записываются уже ссылки на элементы 8.2 + плюс еще хранится ссылка на базу 7.7 (задача перекачать и синхронизировать порядка 120 баз 7.7)
(8) Да, пишу код владельца
скачать с letitbit.net
(9) Это не справедливо по отношению к коллеге 🙂 Тем более, раз сам такое делал тоже. Если все-таки не прочь взглянуть, то вот ссылка:
(9) + кстати, если работал с 8.2, то мож скажешь, где я туплю. Ситуация простая. Заполняю табличную часть РеквизитыЗагрузки обработки, скажем, десятью строками. Потом, если очищаю и заполняю снова, скажем, пятью новыми, то почему-то Элементы.РеквизитыЗагрузки.ТекущаяСтрока выдает номера строк не с нуля, а с 10. Хотя на форме только 5 строк, которые загрузил последний раз.
(11) гляну обработку скажу может 😉
пока долбился с вот этим
http://infostart.ru/forum/forum14/topic30713/
чуть позже выложу результат, если что можешь добавить — добавь плиз
и я храню не код владельца 🙂 а ссылки базы 8.2
если тебе нужно то выложу код
подскажите пожалуйста по проблеме:
при загрузке контрагентов в 8.2 вылетает ошибка:
Для справочника Контрагенты не определен владелец, сопоставление не возможно!. Если поставить игнорирование ошибки, то загружаются пустые группы контрагентов.
(14) Попробуйте скачать текущую версию, что сейчас лежит, и проверить. Выгрузку придется повторно сделать. Ошибки быть не должно. Если повторится — пишите в личку. Нужен будет файл выгрузки, который Вы пытаетесь загрузить.
ОБЯЗАТЕЛЬНО на компьютере, с которого выгружаете, удалите из каталога Windows/Temp все временные файлы с расширением epf.
❓ У меня тоже выскакивает та же ошибка только при выгр. Номенклатуры, причем я скачала заново обработку 22.02.10, заново выгрузила справочник, но ничего не изменилось…
Повторюсь:
ОБЯЗАТЕЛЬНО на компьютере, с которого выгружаете, удалите из каталога Windows/Temp все временные файлы с расширением epf.
Я все удалила, хотя эти файлы были в другой папке (даже на другом диске), но ничего не изменилось
При проверке были обнаружены ошибки…
Обработка прервана!
А не может это быть из-за того, что в файле выгрузки вообще нет такого слова как «Владелец»?? Может в модуле прописать определение к этому слову?
Прошу прощения, но при открытии файл Загрузка в 8.2 просто тупо ничего не происходит — после открытия окошко промелькивает и все.
Что можно сделать чтоб исправить ситуацию?
1С 8.2.10.77. конфигурация Розница 1.0.9.5
Обработку обновил. Ошибку с Владельцем исправил. Также исправил ошибку метаданных в загрузке в 8.1. Качайте.
не работает
не хочет работать.
не работает
А из 7.7 в 8.1 и документы за период?
Хотел поставить плюс, но пока воздержусь.
Выгружает без нареканий.
А вот при загрузке справочника Единицы измерений (типовая УТ) ничего хорошего не получается. Ошибок две:
1)в модуле после строки №500
В вашем варианте вообще цикл вхолостую крутился.
2) При записи норовит влепить какого-то кривого Владельца, это пришлось закомментарить. Но это, разумеется. не решение. Это в районе 550й строки.
Задача была обновить одно поле у идентичного справочника (потерялось при обновлении). То есть вариант с перезаписью элементов был выбран.
В итоге, справочник обновлён. Спасибо.
Доработаете обработку, поставлю плюс.
Глупый вопрос, но все-таки чем из семерки получить нужный файл .txt
Почему файл без расширения? Назначил epf. При открытии пишет:
Ошибка при выполнении файловой операции ‘C:Перенос.epf’
по причине:
Неверный формат хранилища данных ‘file://C:/Перенос.epf’
Спасибо, помогло, и для обучения полезно.
В прниципе норм обработка. Не все конечно можно перенести. Но если уж не получается, то можно и самому дописать перенос отсального.
Понравилась, только не работает загрузка номенклатуры.
По подробней о загрузке номенклатуры, если можно. Как ее заставить, все-таки загрузить номенклатуру?
(36) Ну, так давай опубликуем!
Обработка переносит справочники хорошо. Только проблемы у меня возникли при переносе единиц измерения — иногда не создавались для некоторых позиций нужные единицы.
Не знаю на сколько он простой перенос но качественный, Спасибо разработчику)))))))))))
Здраствуйте мне вот наприер потребовалось перенести справочник обычный без подчиненных из одной базы в другую без всяких там наворотов. Для моего случая это был самый подходящий вариант.
Мне очень пригодилось за это автору большое спасибо и конечно же плюс.
Скачал, пробовал переносить справочники между двумя бухгалтериями 2.0. не получилось загрузить, пишет что «для перечисления ставка ндс не определено значение » «!». Не понял в чем косяк, в выгрузке или в загрузке, короче лучше конвертацией перенесу. А вы поправьте пожалуйста.
Тоже очень хорошая обработка:
http://infostart.ru/public/86230/
— можно использовать между разными платформами 8ки: 8.0, 8.1, 8.2, 8.2
— и разными конфигурациями