Как восстановить значения реквизита в документах 1с 8.3?

1. user1041556 31.07.20 17:05 Сейчас в теме
Есть документы "Заказы", табличная часть, в ней колонка-реквизит (заполняется из справочника).
Так вышло кривыми руками, что значения очистились.
Есть копия БД и с помощью обработки - ВыгрузкаЗагрузкаXML могу заменить все документы, тем самым восстановив потерянные значения.
Но дело в том, что обработка восстанавливает все поля (реквизиты), тем самым затирая данные, которые могли измениться после создания копии, это статус заказа, комментарии и тому подобное.

Как из копии выгрузить заказы только с одним конкретным реквизитом и восстановить значение этого реквизита в рабочей БД, на затрагивая другие поля?
(версия 8.3, самописная).
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
11. o.nikolaev 211 31.07.20 19:32 Сейчас в теме +0.2 $m
(1) Самое тупое и простое:
- обработка бежит по копии базы, выгружает в текстовый документ строку с ид дока и значением реквизита
- в рабочей читаешь файл, находишь док по ид, восстанавливаешь значение реквизита.

С помощью кд 2 можно собственно написать правила чтобы восстанавливать только значение нужного реквизита. Вариантов масса в общем.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. user856012 13 31.07.20 18:03 Сейчас в теме
(1)
дело в том, что обработка восстанавливает все поля (реквизиты), тем самым затирая данные, которые могли измениться после создания копии, это статус заказа, комментарии и тому подобное.
А состав табличной части не мог измениться? Например, количество строк?
(версия 8.3, самописная)
Тогда вполне очевидно: для самописной конфигурации - самописная обработка, которая будет делать то, что уже посоветовали выше.

Как вариант - отредактировать выгруженный XML так, чтобы в нем остались только строки со значениями нужного реквизита, а все остальное, что нежелательно менять - удалить.

Но если файл большой (документов много), то как это сделать, если не с помощью обработки? Возвращаемся к п.1.
5. user1041556 31.07.20 18:14 Сейчас в теме
(4) Да, как раз, забыл сказать, что реквизит в табличной части.
6. user856012 13 31.07.20 18:17 Сейчас в теме
(5)
забыл сказать, что реквизит в табличной части.
Еще вы забыли ответить на уточняющий вопрос: если состав табличной части поменялся, то что делать с реквизитом в измененных строках? Например, в добавленных?
7. user1041556 31.07.20 18:22 Сейчас в теме
(6)Нет таких, с табличной части после создания ничего не меняется у нас. Только в основной части меняется.
В табличной части товары и характеристики.
У меня отличия в базах в 2 дня, я глазами уже пробежался.
Мне бы как нибудь код написать, который выгрузит документы только с одним реквизитом из ТЧ.
8. user856012 13 31.07.20 18:27 Сейчас в теме
(7)
Мне бы как нибудь код написать
Так напишите, кто мешает? Или чтобы его за вас кто-то написал и выложил... за 0.2 $m? ;-)
9. user1041556 31.07.20 18:30 Сейчас в теме
(8)Бесполезный ответ у вас, а то я сам не понимаю, что нужно писать обработку. Кроме того, можно подумать, что это какая то уникальная ситуация и ни у кого нет такой обработки, чтобы поделиться ею.
10. aka Любитель XML 31.07.20 18:54 Сейчас в теме
(9) готовое решение искать в данной ситуации не имеет смысла, по-скольку у всех "уникальные" ситуации возникают. ЗЫ: за 1,5 часа уже бы решили проблему
11. o.nikolaev 211 31.07.20 19:32 Сейчас в теме +0.2 $m
(1) Самое тупое и простое:
- обработка бежит по копии базы, выгружает в текстовый документ строку с ид дока и значением реквизита
- в рабочей читаешь файл, находишь док по ид, восстанавливаешь значение реквизита.

С помощью кд 2 можно собственно написать правила чтобы восстанавливать только значение нужного реквизита. Вариантов масса в общем.
12. user1041556 31.07.20 21:08 Сейчас в теме
(11)
кд 2

Сижу пишу код, вроде получается, думаю выгружу.
Но вопрос по загрузке - как значения реквизита попадут в нужные строки табличной части?
У строки есть код?
13. o.nikolaev 211 31.07.20 21:22 Сейчас в теме
(12) У строки есть НомерСтроки
20. gmw 02.08.20 10:42 Сейчас в теме
(13)Номер строки мог измениться при редактировании. Надёжнее искать сразу по нескольким реквизитам строки, например: Номенклатура И Количество И Сумма.
2. QuickMix 31.07.20 17:38 Сейчас в теме
Из рабочей базы подключись по COM к копии, найди нужные документы в ней, и запиши значение нужного реквизита в этот же документ в рабочей базе.
3. Albert_2008 31.07.20 17:42 Сейчас в теме
Например написать обработку которая из копии сохраняет в текстовый файл значение реквизита и номера документа. и соответственно обработку, которая будет находить в реальной базе этот документ и записывать реквизит полученный из файла.
starjevschik; +1 Ответить
14. AlexandrSmith 68 02.08.20 09:35 Сейчас в теме
Выгрузить из заранее сделанного архива все документы и восстановить обработкой:
https://its.1c.ru/db/metod8dev/content/4126/hdoc
https://its.1c.ru/db/files/1CITS/EXE/EXTREPS/UNIREPS83/UploadToXML/UploadTo­XML.zip
Наверняка, хоть один архив то у вас есть, восстановите в отдельную базу выгрузите этой обработкой и загрузите снова.
15. AlexandrSmith 68 02.08.20 09:42 Сейчас в теме
Самое большое количество способов восстановления реквизитов, элементов справочников предлагает прежде всего конфигурация Конвертация данных. В ней вы найдете массу полезных обработок, которые позволяют довольно успешно восстановить данных из разных источников данных, из разных конфигураций, пусть даже не равных по версии.
16. AlexandrSmith 68 02.08.20 09:46 Сейчас в теме
Сейчас используется Конфигурация данных 3.0
https://its.1c.ru/db/metod8dev/content/5848/hdoc
Версия 3.0.5
Новое в версии
Расширены возможности конвертации табличных частей и общих составных свойств
Оптимизирован формат выгрузки менеджера обмена
Прочие улучшения, связанные с разработкой конвертации, исправление ошибок
17. AlexandrSmith 68 02.08.20 09:48 Сейчас в теме
Статьи по восстановлению при помощи Конфигурации данных 3.0
https://its.1c.ru/db/metod8dev/content/5870/hdoc
Механизм сопоставления данных при обмене через универсальный формат

https://its.1c.ru/db/metod8dev/content/5846/hdoc
Методика работы с конфигурацией "Конвертация данных 3.0"
18. AlexandrSmith 68 02.08.20 09:51 Сейчас в теме
Достаточно установить ПКО - правило конвертации объекта. Правила создаются автоматически в большинстве случаев довольно успешно, таким образом вы сможете сконвертировать из любого архива нужный вам реквизит и данные. Если правильно создадите правила, то я уверен ничего не затрется и свободно обновиться.
19. AlexandrSmith 68 02.08.20 09:54 Сейчас в теме
Если конфигурации совершенно одинаковые используется выгрузка загрузка данных. В ней вы совершенно спокойно восстановите каждый объект. Но нужно помнить, что обычно объект восстанавливается со всеми вложениями. Это означает, если у вас были изменения во вложенных и зависимых объектах, то они соответственно затрутся.
21. user1079872 03.08.20 09:56 Сейчас в теме
Уточните, тот реквизит который восстанавливаете имеет одно значение или разные?
22. Bazin 5 03.08.20 13:31 Сейчас в теме
ИМХО: В таких случаях я пользуюсь замечательной функцией ЗначениеВФайл.
Запросом кладу данные (прям ссылки) в таблицу значений и файл, в базе-приемнике (а это копия) получаю эти же ссылки (не парясь: с состовными типа данный, НайтиПоКоду, НайтиПоНомеру.....), код сводится к "трем" строкам: ПолучитьОбъект, Установить значение, Записать.
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

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

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

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

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