gifts2017

Создание строк кода по шаблону и списку

Опубликовал anry mc (AnryMc) в раздел Программирование - Инструментарий

Бывает необходимо создать код, содержащий много одинаковых строк

Когда-то была необходимость создать отчет, который бы "интерпретировал" данные на основании информации, которой нет в базе.

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

Так как писать мне это было лень - появилась эта простая обработка.

Задается шаблон кода, например:

СписикЗначений_ТМЦ_Исключения.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("*****"));

Берется справочник "Номенклатура", отбирается по нужным параметрам и выводится в таблицу, которая копируется в обработку...

В результате работы получается "блок" кода:

СписикЗначений_ТМЦ_Исключения.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Товар_1"));
СписикЗначений_ТМЦ_Исключения.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Товар_2"));
...
СписикЗначений_ТМЦ_Исключения.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Товар_1000"));

Готов параметр, например, для передачи в запрос, содержащий 1000 наименований из справочника. 

ПРАВИЛА РАБОТЫ:

Задается "шаблон кода" - та строка, которая будет копироваться... Она содержит "шаблон для замены" - та часть строки которая будет заменяться значениями из списка.

ВАЖНО:

Вставлять таблицу значений в текстовое поле на обработке с первой строки и ТОЛЬКО в ПЕРВУЮ колонку.

ДОПОЛНИТЕЛЬНО:

Возможна работа с нумерацией - до максимального количества.

Возможна (опционально) замена "кавычки" на """ - для текстовых строк в коде.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Создание кода на основание списка значений
.epf 8,12Kb
01.12.15
0
.epf 8,12Kb 0 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Андрей Конев (Infector) 02.12.15 13:34
Топорный подход изначально. Свойства объектов чем вам не угодили, если конфигурацию менять нет желания. Если нужно больше измерений - есть регистры сведений, которые позволяют изменить конфигурацию без ущерба для сложности поддержки.
HiKS; jan27; maksa2005; +3 1 Ответить 1
2. Сергей Галюк (dj_serega) 03.12.15 18:54
3. anry mc (AnryMc) 04.12.15 12:02
(1) Infector,
Например:
- клиент запретил включать изменения в конфигурации.
- есть ещё базовые конфигурации в которых вообще нельзя писать

Вообще жизнь такая сложная штука, что всего и не предусмотреть....
Возможно, кому-то обработка все-таки пригодится, хотя и действие получилось весьма специфическое.
Зачем вообще?
Еще вчера, скорее всего, спросил бы то же самое. Однако нашлась ситуация.

Источник: http://infostart.ru/public/324775/
Автор: http://infostart.ru/profile/349973/ Infector

ПС. Публикация о методе решения конкретной проблемы: Заполнить кучу строк кода по существующему списку, а не о методологии программирования...
4. Андрей Конев (Infector) 04.12.15 12:53
С базовыми конфигурациями, конечно, тяжелее, однако я бы заморочился все-таки с решением, не зашивающим справочную информацию в недра кода. Файлом dbf, например. Клиент-серверный вариант недоступен все-равно.

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

P.S.: минус не ставлю.
5. anry mc (AnryMc) 04.12.15 14:05
(4) Infector,
P.S.: минус не ставлю.


Ставьте. Разрешаю.

однако я бы заморочился все-таки с решением, не зашивающим справочную информацию в недра кода.

Ещё раз НАМЕКАЮ. Публикация не о истории решения а о методе уменьшить трудозатраты при создании многих строк кода когда есть список из которого их можно сформировать...
6. Павел Жихарев (palsergeich) 04.12.15 23:56
а не проще тоже самое сделать в excel одной формулой?
7. anry mc (AnryMc) 07.12.15 10:02
(6) palsergeich,
Для этого на компе должен стоять excel (платный продукт). А 1С есть по умолчанию, раз обработка для 1С прогера.

А если выложить здесь эту формулу - будет ещё лучше...
8. Борис Скворцов (gaglo) 09.12.15 10:54
(7) А формулы, по-моему, и ни одной не надо. И Excel необязательно, скажем, что Open Office сгодится...
Список значений выделяем, копируем из 1С , вставляем в колонку 2 пустой таблицы. Получаем колонку, заполненную значениями Товар1, Товар2, ...Товар1000.
Все ячейки колонки 1 заполняем одинаковым значением:
СписикЗначений_ТМЦ_Исключения.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("
Все ячейки колонки 3 заполняем одинаковым значением:
"));
Сохраняем лист в TXT-формате.
А! Поди, для этого и возможностей редактирования MXL хватит....
9. Вадим Никонов (V.Nikonov) 10.12.15 17:56
А если завтра понадобится ваять кодовые строки требующие подстановки из 2-х колонок? Новую обработку ваять?
Сколько раз удалось воспользоваться этой обработкой?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа