Мухи и котлеты

11.06.09

Разработка - Инструментарий разработчика

"Мухи - отдельно, котлеты - отдельно". Статья и внешняя обработка 7.7

Скачать исходный код

Наименование Файл Версия Размер
FliesAndCutletsSeparately
.1235753210 33,00Kb
125
.1235753210 33,00Kb 125 Скачать
Подбор объектов ИБ в таблицу в режиме ВД
.1236877775 28,50Kb
27
.1236877775 28,50Kb 27 Скачать
В качестве бонуса. Журналы документа
.1236877851 12,50Kb
34
.1236877851 12,50Kb 34 Скачать бесплатно

   С чем может ассоциироваться название статьи?
   Ну, наверно, мухи - насекомые - жуки - ошибки программы; котлеты, соответственно, еда, пища, - наполнение - сама программа.
   А можно и так: мухи - это код, котлеты - данные. Код сидит на данных, и зачастую очень сильно с ними перемешан. :)))                     

   Значит, будем заниматься "дезинфекцией", отделять код и данные, изменяя их общую дислокацию.

   Этим мы достигаем несколько целей:

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

   Код, понятное дело, оставим на его родной закладке "Модуль". А вот данные (постоянные), описанные в коде, как то: строковые, числовые, типа "дата" "константы", вспомогательные и на форме диалога списки значений, таблицы значений, описания их структур можно вынести в другое место,  куда нибудь, совсем недалеко, по-соседству, например, на закладку "Диалог" в определенный слой формы.
Или, нет... как-то там проблематично хранить сами данные, только если зарезервировать под это сохранение настройки отчета, или всё хранить в реквизитах формы типа "Текст". Ну, тогда пойдем другим путем, направо. А справа у нас таблицы-макеты. Тут, вроде, все наглядно и удобно.  
   Таблица-макет доступна в любом исполняемом контексте: ГлобальныйМодуль - общие таблицы,
локальные модули - встроенные макеты-таблицы.
   Границы использования хранимых данных расширяются до границ текущего контекста, без объявления дополнительных общих переменных, - в любой процедуре (насколько это возможно без ущерба производительности) обращаемся к таблице-макету и получаем их заново.
   Также, встроенную таблицу-макет можно легко скрыть с глаз долой, во внешний файл, без ущерба для ее использования, - это, м.б. определенным способом  защиты (с натяжкой, конечно) кода, который, при этом остается открытым, доступным для изменений, но который без прилагаемой таблицы-макета работать не будет.

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

   Для хранения данных используем атрибут ячеек таблицы-макета "Текст", для адресации ячеек удобным текстовым представлением - наименованиями областей и секций. Можно было бы использовать  метод Расшифровка(), который бОльше подходит для хранения сложных типов данных, однако, в большинстве своем, атрибута "Текст" хватит (с преобразованием чисел и дат) и на описания структур и на начальную постоянную информацию.
 
   В прилагаемой к статье обработке-примере за получение данных отвечает претендующая на универсальность процедура ПолучитьДанныеИзТаблицы(), адресация и способ хранения данных с примерами описан в таблице-макете "Котлета". :)
 
   Замечание. Встроенные таблицы-макеты м.б. недоступны в теле функций  и процедур, вызываемых из формул диалога, т.е. метод ИсходнаяТаблица() их может и не увидеть. Варианты решения этой проблемы: использовать общие таблицы, использовать внешние макеты, использовать встроенные макеты с ложным закрытием формы, встроенные макеты определить заранее. 

Изменения от 12.03.2009

Теперь в таблице можно хранить объекты ИБ. Добавлены обработка для формирования таких таблиц и еще одна, -  "Журналы документа" родившаяся в результате отладки.

Успехов в реализации Ваших идей!

См. также

Консоль запросов

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Консоль запросов к базе SQL, не требующая внешних компонент

10 стартмани

29.04.2015    21633    54    Gvozdod    8    

14

StartManager 1.4 - Развитие альтернативного стартера

Инструментарий разработчика Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    165965    1868    Alexoniq    1596    

496

Tray Informer

Инструментарий разработчика Платформа 1С v7.7 Платформа 1С v8.3 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    32913    61    O-Planet    78    

49

Изменение структуры баз 1С 7.7 без долгой реструктуризации. Часть 1. Справочники

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема. Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы. Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме. Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.

1 стартмани

13.08.2013    21253    Reptile    5    

35

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7.

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    18057    35    MarSeN    14    

16

[Разработчику] Любая таблица значений в OLAP

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    36128    51    venger    7    

23

Библиотека кода 1С 7.7 (накопленная за 8 лет)

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    35003    248    adhocprog    51    

70
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 27.02.09 23:04 Сейчас в теме
1. правилно так: Хелло воРЛд!
2. такой подход кое-где используется в типовых конфигах на 7.7
+
2. CheBurator 3119 27.02.09 23:05 Сейчас в теме
Прямо хоть организуй "зоопарк": см. http://infostart.ru/projects/1969/
;-)
+
3. Шёпот теней 1780 27.02.09 23:57 Сейчас в теме
ради искусства или ради пользы... такая шаманская идея возникла...
в чём практическая ценность...

воОотвопрОс...
+
4. Shaman100M 1150 02.03.09 10:12 Сейчас в теме
(3) Такая идея возникла от желания "причесать" большой объем кода.
С точки зрения того, что код был уже отлажен, ее можно отнести к искусству. :)

80% внешних отчетов и обработок, если брать пределы модуля, (не говоря уже о пределах процедур и функций) используют 2-3 списка или таблицы значений, особого смысла их выносить в Таблицу и добавлять еще пару сотен строк кода, - нет. Остаются большие внешние, а также, конфы в целом, если ... не лень. Вот тогда появится практическая ценность.

(2) Ну пока что не зоопарк, а так, корм для обитателей террариума. :)

(1) Олбанцы в наступлении, перешли Ла-Манш.
+
5. Ёпрст 1063 02.03.09 10:20 Сейчас в теме
(0) велосипед.. см. комплексную, к примеру, как заполняется справочник хоз. операций/движение регистров/Проводки хоз операций...
+
7. Shaman100M 1150 02.03.09 11:01 Сейчас в теме
(6) Да, там это смотрится как необходимость - 70т значений в код не уложишь.
+
8. Арчибальд 2707 03.03.09 02:40 Сейчас в теме
Вообще-то программирование в современном смысле началось тогда, когда алгоритм (в виде кода) стал частью обрабатываемых компьютером данных.
А в 80-х годах был "японский вызов": шестое поколение - компьютеры, управляемые данными. В прошлом году нечто подобное Мелкософт с Интелом анонсировали.
Так что котлеты изготавливаются из мух, предварительно откормленных котлетами...
Ish_2; +1
9. Ish_2 1104 03.03.09 08:46 Сейчас в теме
12. Shaman100M 1150 12.03.09 20:19 Сейчас в теме
Обновились до коммента (8).
+
10. Shaman100M 1150 03.03.09 08:52 Сейчас в теме
... тогда что же появилось раньше? ;)
+
11. Арчибальд 2707 05.03.09 08:57 Сейчас в теме
Комментировал текст. Поразбирался с кодом теперь.
Общее впечатление хорошее. Много программеров работают больше руками, чем головой. А тут, может, кто-то мозги включит: хотя ничего нового, зато это известное обозначено=названо (первый шаг в научном подходе) и неким образом классифицировано (второй шаг).
Плюс за подход.
+
Внимание! Тема сдана в архив