Завершая цикл статей о прямой работе с базой данных из 1С 8.2, я бы хотел поделиться некоторыми наработками. Возможно они кому-то пригодятся. Возможно кто-то найдет время довести их до более совершенных инструментов чем они являются на текущий момент.
Как я писал в предыдущих статьях (Статья1, Статья2), с помощью выполнения прямых запросов к MS SQL, в некоторых случаях можно выиграть время. То есть мы можем одним SQL запросом обновить большое количество данных используя такие инструменты как cte, batch. Причем заметьте, именно обновить, либо скопировать часть данных, либо изменить, либо удалить. Штатные запросы 1С не позволяют модифицировать данные. В некоторых случаях, данные методы позволяют значительно сократить время выполнения тех или иных операций с данными.
Я решил что не стоит писать в статье море кода, и описания к нему. Я решил просто поделиться ссылками на готовые обработки.
Самая массивная обработка которая у меня получилась в результате долгой работы с MS SQL через 1С, это собственно помощник, который позволял мне экономить время на самом процессе перевода 1С запросов в MS SQL запросы. А так же обработка позволяющая свободно ориентироваться в структуре данных 1С. Конечно она не сразу стала такой какой является сейчас, а улучшалась изо дня в день. Были задачи которые я не знал как решить, но потом находил решение. Есть вещи которые я до сих пор не решил на 100% корректно как мне бы хотелось. Именно парсинг запроса для перевода полей таблиц, до сих пор не идеален. Но возможно у кого-то будет время и желание с этим поковыряться. Но даже если этого и не делать, в любом случае данная обработка позволяет экономить время при интеграции системы на 1С платформе с другими системами.
Для того что бы транслировать объект (таблицу) необходимо сначала выделить её в редакторе текста. Затем нажать соответствующую кнопку. Для перевода полей можно выделять отдельно поля, можно выделять описание всех полей таблицы, тогда напротив каждого поля будут оставаться комментарии с названиями полей в представлении 1С. Если нажать кнопку трансляции полей без выделения определенного участка текста, то все слова с названиями полей будут переведены во всем запросе, включая описание соединений и условий отбора.
Так же хочу поделиться обработкой которая может пригодится скорее разработчикам на этапе отладки конфигураций, либо при каких-то опять же интеграциях. Данная обработка позволяет используя sql bcp выгружать из базы данных таблицы, а так же загружать эти таблицы в другую базу данных, используя при этом различные отборы. Особенно полезной данная обработка может оказаться при необходимости переноса большого объема данных.
Автор: ixilimuse