Изредка возникают неожиданные задачи... Вот и недавно во время посещения клиента увидел, как оператор вносит данные в БД из электронной таблицы, присланной покупателем - тогда было массовое изменение GLN торговых точек и обязательное указание телефонов магазинов для водителей в документах. Как обычно, т.к. задача "разовая" всё вводилось ручками, да и ко мне не обращались по причине, что
такие задачи редкие и каждый раз "другие". Так, как у меня было время подумать на досуге, то на будущее вспомнил механизмы данной темы и придумал универсальный механизм пособления операторам для таких разовых и каждый раз разных задач.
На "вход" имеем CSV файл с произвольными разделителями, который легко, например получить из электронной таблицы. Затем нажав в требуемой таблице, режиме, справочнике и etc
кнопки Ctrl+A задаём для этой таблицы схему копипаста, где указываем в какие поля текущей таблицы пишем информацию из строки CSV файла. При необходимости игнорировать поле CSV оставляем пустое значение.
Например где-то, например (реально) из 1С:Бухгалтерия выгружен список работников с кучей ненужных атрибутов, из которых нам нужно только внести в программу должность и номер телефона:
В списке (справочнике) работников вызвали режим режим задания схемы Ctrl+A. Определили разделитель, список полей для копипаста. Как видно на картинке мы игнорируем первые 3 поля.
Затем последовательно по строкам CSV списка копируем строку: Crtl+Insert (Ctrl+C) или из меню:
На изменяемой строке справочника
нажимаем кнопки Ctrl+Z. Программа блокирует запись и изменяет соответствующие поля таблицы, заблокировав запись и определившись с типом поля для внесения информации, т.е. дату запишет, как дату:
При операции копипаста правильно определяются шрифты, если установлен "русский"... и понятно, что для таких действий нужно знать структуру БД - инструкции laks_dbf.doc и понимать, что нельзя менять поля системных кодов. Впрочем врятли такие задачи пользователи будут решать без обращения ко мне, но всё же это много легче, чем вбивать информацию ручками?