Сериализация и хранение табличных частей в файле

1с и web разработка

Сегодня приведу пример того как можно сериализировать и сохранить табличные части в файле. Это может пригодиться в тех случаях когда вы пишите внешнюю обработку, забиваете табличные части и в какой-то момент понимаете, что нужно добавить некоторую функцию, но закрывать внешнюю обработку нельзя, т.к. обработка содержит данные, которые нам нужно сохранить.

Для начала определимся какие у нас есть варианты.

  1. Вывести список, сохранить его в xls или другой файл. Потом написать процедуру загрузки.
    При этом мы сохраняем данные и продолжаем ими пользоваться после закрытия/открытия обработки
    К минусам можно отнести трудоемкость подобной разработки, а к плюсам то, что не надо заранее продумывать вариант, при котором вы можете потерять данные. Сомнительный плюс. Не правда ли? Но это еще не все. Если у вас в табличной части поля ссылочного типа — вам придется восстанавливать их по наименованию или представлению. Что тоже малоувлекательное занятие.
  2. Сериализовать табличные части и сохранить их в файл
    Так же сохраняем данные и пользуемся ими после закрытия/открытия обработки
    С плюсами и минусами тут все наоборот. При этом варианте надо сначала подумать, а потом писать, но зато здесь присутствует красота и изящность кода, а так же более быстрая разработка по сравнению с первым вариантом. Ну конечно поля ссылочного типа встанут на свои места, т.к. для сериализации будет использована функция «ЗначениеВСтрокуВнутр»

Я определился. Мне 2 вариант больше подходит. Если и вам он подошел — тогда начнем

Надеюсь, что мои читатели уже умеют делать команды и кидать кнопки на формы, поэтому этот шаг я пропущу и перейду сразу к коду.

Кнопка «Сохранить табличные части» имеет простой код:

Тут «cat» — это имя файла, а «Категории» — имя табличной части, которую нам надо сохранить. Если нам нужно сохранить 2 или более табличных частей — просто добавляем ВыбратьФайлИСохранить(«tov», «Товары»); И так для всех табличных частей.

Напрашивается код процедуры ВыбратьФайлИСохранить и некоторых других, которые нам будут помогать в этом деле.

Теперь мы удачно сохранили файлы и нам их нужно загрузить обратно.

Вешаем на кнопку «Загрузить табличные части» такой код:

И так для всех тч, которые мы хотим загрузить.

Код, который нам в этом поможет:

Вот так просто в 70 строк кода мы решили проблему, которая может сэкономить нам от нескольких минут до нескольких часов.

Я, например, пользуюсь этим когда делаю парсинг сайтов. Чтобы не было необходимости заливать по новой категории, потом товары, потом цены.

Сохранил тч в файл, добавил функций в обработку, загрузил. И опять продолжаю с того места на котором остановился.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *