Максимов Валерий | Начальник отдела | BIA-Teсhnologies, LLC

«Отказ от использования хранилищ 1С, переход на GIT»

В докладе хочу рассказать о процессе и результате перехода нескольких команд (более 100 разработчиков) на использование системы контроля версий git за полгода: - Почему и зачем; - С чего нужно начать; - Важность обучения и документации; - Плюсы и минусы, ограничения и подводные камни.

ВыгрузкаЗагрузкаДанныхXML по плану обмена

1. hvs 28.12.16 21:17 Сейчас в теме
Здравствуйте,

Столкнулся с такой проблемой: есть план обмена (не типовой) и данные, которые зарегистрированы к обмену, как мне можно выгрузить эти данные в XML что бы загрузить их в другую конфигурацию? Конфигурации идентичные, доработанные (УТ 10.3)
есть стандартная обработка "ВыгрузкаЗагрузкаДанныхXML", там можно выгрузить данные с определенным отбором, но нельзя выгрузить данные которые зарегистрированы к обмену для определенного узла... можно просмотреть данные для выгрузки через обработку "Регистрация изменений для обмена" - но там вобще нельзя выгрузить данные...
Есть обработка "Универсальный обмен данными в формате XML" - но там необходимо указывать правила, по которым выгружать данные, но если у меня две идентичные конфигурации можно ли сделать это без написания правил обмена типовым способом? или нужно писать обработку, читать данные и выгружать их программно (или писать правила обмена? а если да, то можно ли как-то быстро их написать)?
Найденные решения
4. starik-2005 1386 28.12.16 22:38 Сейчас в теме
(3) а что тут показывать? Открываешь консоль запросов, в ней жамкаешь кнопочку, чтобы изменения таблиц тоже показывалось. Дальше читаешь изменения (типа "ВЫБРАТЬ Ссылка, Узел ИЗ Документ.ДокументНомерАдын.Изменения"), дальше уже по результату запроса пробежался, объекты получил и в массивчик положил, массивчик сериализовал и записал в файлик или в строку текста, из которого в другой базе прочитал, по массивчику пробежался и "ЭлементикМассивчика.Записать();" сделал. Ну 30 минут максимум.
Остальные ответы
Сортировка: Древо
2. starik-2005 1386 28.12.16 21:49 Сейчас в теме
(1) любой объект 1С можно выгрузить/загрузить тремя строчками:
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(Запись, Объект);
ОбъектВСтроке = Запись.Закрыть();
Чтение - в обратную сторону. написать такую обработку - дело пяти минут.
3. hvs 28.12.16 22:31 Сейчас в теме
(2) Спасибо, но нужно написать код, который будет читать изменения для определенного узла и каждый объект выгружать в файл, вы не подскажете, как можно прочитать изменения, например, только документов или только записей регистра? Я новичок в планах обмена, мне бы помог хоть какой-нибудь кусочек кода... :)
4. starik-2005 1386 28.12.16 22:38 Сейчас в теме
(3) а что тут показывать? Открываешь консоль запросов, в ней жамкаешь кнопочку, чтобы изменения таблиц тоже показывалось. Дальше читаешь изменения (типа "ВЫБРАТЬ Ссылка, Узел ИЗ Документ.ДокументНомерАдын.Изменения"), дальше уже по результату запроса пробежался, объекты получил и в массивчик положил, массивчик сериализовал и записал в файлик или в строку текста, из которого в другой базе прочитал, по массивчику пробежался и "ЭлементикМассивчика.Записать();" сделал. Ну 30 минут максимум.
5. hvs 28.12.16 23:02 Сейчас в теме
(4) Спасибо! Это гениально!
Скажите, а при выгрузке / загрузке последовательностей есть какие-то "подводные камни"? или их можно так же как обычные объекты выгрузить и загрузить и ничего перепроводить / перезаписывать не нужно?
И еще при загрузке объекта, если в каком-то его реквизите объекта нет в базе, в реквизит проставится что типо "<Объект не найден *и идентификатор объекта*> при последующей загрузке этого объекта (которого не было в реквизите) он подставится вместо <Объект не найден ...> верно?
т.е. например, загружается документ, в табличной части которого есть номенклатура, которой нет в базе, за место нее подставится <Объект не найден...> а при последующей загрузке этой номенклатуры она подставится в документ, верно? (это если выгружать без ссылок на подчиненные объекты)
И еще... можно ли как-то очистить регистрацию изменений только для определенного типа данных? т.е. для всех справочников, или для конкретного справочника / документа
6. starik-2005 1386 28.12.16 23:14 Сейчас в теме
(5) И? Ты ж рулишь - залей в массив все объекты. Чтобы не повторяться используй "ВЫБРАТЬ РАЗЛИЧНЫЕ". Если регистры прочитать, то они тоже сериализуются. Просто все, что тебе надо - взять и сделать, а не ждать, пока кто-то даст тебе обработку. С другой стороны, за это время можно было бы допилить "стандартную обработку" до нужного функционала.
7. hvs 28.12.16 23:24 Сейчас в теме
(6) Нет нет, я как раз не жду, пока мне кто-то даст готовую обработку, я сейчас и допиливаю типовую "ВыгрузкаЗагрузкаДанныхXML" пробегаюсь по всем объектам метаданных и добавляю в выгрузку все объекты, у которых есть регистрация изменений для определенного узла. Просто, для контроля, я хотел выгружать частями, что бы мониторить выгрузку / загрузку... поэтому и задал вопросы выше... что бы после выгрузки данных определенного типа убирать только у них регистрацию изменений, что бы в следующий раз уже не выгружать их...
8. necropunk 5 29.12.16 10:33 Сейчас в теме
Попробуйте подсистему "Инструменты Разработчика". Можно портативную, если не хотите ничего менять. В ее составе есть обработка "Выгрузка/загрузка данных через файл", она без проблем выгружает данные по узлу.
Оставьте свое сообщение

Вакансии

Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата до 160 000 руб.
Полный день