как картины Пишу код

975
Рейтинг

Пишу код как картины
yurii_host



  •   Регистрация: 25.07.2008 (8 лет назад)

  •   Был(а) на сайте: вчера в 22:09


Группы

Профессиональный разработчик

Рейтинг 975

Простой запуск юнит-тестов 9

Программист v8 1cv8.cf Абонемент ($m)

Шаблон экспресс теста на базе xUnitFor1C

1 стартмани

28.01.2017    1259    2    2    

Как построить цепочку асинхронных вызовов 60

Программист v8 v8::УФ 1cv8.cf Абонемент ($m)

Опишу способ организации последовательных асинхронных методов, которому я недавно научился.

1 стартмани

11.01.2017    4184    2    70    

Список открытых форм в управляемом приложении 1

Администратор Программист v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

08.01.2017    1188    5    0    

Универсальный журнал объектов (управляемые формы) 12

Программист v8 1cv8.cf Абонемент ($m)

Инструмент для ежедневного использования. Позволяет просматривать основные таблицы ссылочных объектов и регистров в удобном виде. Имеет некоторые дополнительные полезные возможности.

1 стартмани

25.11.2016    1833    30    4    

Разбираемся с механизмом Дополнительные отчеты и обработки в БСП 158

Программист v8 1cv8.cf Абонемент ($m)

Чуть более комплексное описание, чем на других ресурсах

1 стартмани

30.10.2016    8765    93    17    

Отладка/доработка модуля менеджера "на лету" 74

Программист v8 1cv8.cf Абонемент ($m)

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

1 стартмани

23.10.2016    5696    5    22    

Сверка таблиц при разработке через тестирование 12

Программист v8 Абонемент ($m)

Данная статья про инструмент, который я использую уже продолжительное время, и который, по моему мнению, заслуживает внимания. Также опишу несколько примеров его применения.

1 стартмани

09.10.2016    2448    9    1    

Несколько шаблонов для доработки типовых конфигураций 91

Программист v8 Абонемент ($m)

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

1 стартмани

03.10.2016    7352    46    21    

Полезные процедуры по работе с СКД и табличными документами (часть 2) 105

Программист v8::СКД 1cv8.cf Абонемент ($m)

Еще несколько универсальных процедур

1 стартмани

27.09.2016    7601    24    14    

Разбиение текста запроса на функции 43

Программист v8 Бесплатно (free)

Хочу посвятить публикацию одному приему, который я впервые увидел в типовой ерпи. Если честно, описание идеи довольно короткое, и слабо тянет на целую публикацию. Но я намеренно выделил ее в отдельную статью, чтобы акцентировать на ней внимание, т.к. считаю, что данная техника СУЩЕСТВЕННО повышает читаемость, а также заставляет структурировать тексты запросов.

13.09.2016    6175    0    51    

Кросс-таблица из табличной части или запроса 14

Программист v8 1cv8.cf Абонемент ($m)

Данная задача встречалась мне несколько раз. Каждый раз в новой интерпретации, но суть примерно одинаковая: "Хочу, чтобы по строкам были товары, по колонкам склады, а на пересечении - количество". Вместо товары-склады, может быть что угодно: дата-контрагент, номенклатура+цвет - размер и т.д.

1 стартмани

09.09.2016    2893    11    4    

Полезные процедуры по работе с СКД и табличными документами (часть 1) 221

Программист v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

03.09.2016    10584    50    20    

Разработка отчета СКД с использованием заглушек наборов данных 14

Программист v8 1cv8.cf Абонемент ($m)

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

1 стартмани

25.06.2016    3942    8    15    

Выгрузка данных из тестовой базы 8

Программист v8 1cv8.cf Абонемент ($m)

Инструмент будет полезен при командной разработке на тестовой базе.

1 стартмани

16.06.2016    2334    5    15    

Генератор данных. Полезный инструмент для разработки через тестирование 15

Программист v8 1cv8.cf Абонемент ($m)

Данная обработка является инструментом для разработки через тестирование. Она предназначена для генерации тестовых данных перед выполнением тестов. По назначению она является альтернативой аналогичной библиотеки из проекта xUnitFor1C, однако формат описания данных принципиально другой.

1 стартмани

14.06.2016    3395    12    11    

Дерево вызовов процедур 12

Программист v8 1cv8.cf Абонемент ($m)

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

1 стартмани

08.04.2016    3494    11    7    

Как протестировать неэкспортные процедуры модулей 19

Программист v8 Бесплатно (free)

Процедура для доступа к внутренним методам модуля без нарушения инкапсуляции.

17.11.2015    4190    0    30    

Мои шаблоны. Нахождение всех родителей в запросе 9

Программист v8 1cv8.cf Бесплатно (free)

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

05.08.2015    5059    0    19    

Методика постановки задачи 20

Программист Бесплатно (free)

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

05.07.2015    5372    0    10    

Универсальный способ сравнения таблиц 9

Программист v7.7 v8 Бесплатно (free)

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    3660    0    1    

Панель функций 7.7 8

v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

Универсальная панель функций для 1С 7.7 (SQL). На замену меню Операции.

1 стартмани

05.04.2012    4434    13    2    

Редактор записей регистров сведений и накоплений 40

Администратор Программист v8 1cv8.cf Бесплатно (free)

Не удалось мне найти обработки на эту тему с подобной реализацией. Пришлось написать самому. Хотелось бы ее доработать еще, но пока времени на это нет. Может кто разовьет идею, чтобы поднять себе рейтинг)

05.04.2009    9350    831    7    

Комментарии

DevУлучшение стандарта "Структура модуля"#3 27.03.17 0:52
(2) открыл Документооборот 2.0.14.4. Увидел там, что стандартные области соблюдаются. Просмотрел несколько форм, модулей менеджеров, модулей объектов. В чем именно вы заметили несоблюдение? Приведите конкретный пример.
Других конфигураций под рукой нет.

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

Скажу вам по своему опыту, что очень трудно приучить разработчиков соблюдать даже типовой стандарт. А уж тем более предлагать кому-нибудь свой стандарт - дело совсем неблагодарное. Но желаю вам удачи в этом начинании)
DevУлучшение стандарта "Структура модуля"#1 27.03.17 0:12
Если вы укоротили имена областей, это еще не значит, что повысили читаемость кода.
Вот смотрите, например, область "ОбработчикиСобытийФормы". Любому разработчику понятно, ЧТО в этой области должно храниться. Вы же предлагаете назвать эту область расплывчато "Форма". Да это название короче, но поставьте себя на место разработчика, который не знаком с вашим стандартом. Сможет ли он без ваших объяснений догадаться, что писать в эту область? Вы уверены, что он впишет туда только обработчики событий формы? То же самое и с другими областями (Элементы, Таблицы, Интерфейс и т.д.).
По поводу дополнительных областей, которых нет в стандарте, тоже не согласен. Все дополнительные области следует помещать в "СлужебныеПроцедурыИФункции". Именно поэтому у нее такое общее и расплывчатое название. Внутри нее можно поместить области "Подключаемые", "Оповещения" и др.
Вообще, гораздо проще освоить общий стандарт, чем придумывать свой. Ведь если придешь в новую команду и начнешь всем объяснять, что вы пишете неправильно, а я правильно, то встретишь непонимание и недоумение со стороны коллег.
Лично я давно уже привык к стандартным областям, и могу с уверенностью заявить, что в них лаконично укладывается 99.9% всех решаемых задач, и был бы сильно против, если бы мне кто-нибудь начал навязывать подобные улучшения.
DevПростой запуск юнит-тестов#2 29.01.17 14:57
(1) а выложил уже, только архив с браузером исключил
https://github.com/progromaking/templates
DevПростой запуск юнит-тестов#0 28.01.17 14:20
Шаблон экспресс теста на базе xUnitFor1C
DevJavascript и 1С. Кросс-платформенное взаимодействие#36 28.01.17 11:01
(35) очень интересно. А можно вас попросить выложить пример кода по созданию ком объекта хрома?
Насколько мне известно сам хром (и другие браузеры кроме ие) не имеют ком интерфейса. Вы наверное какую-нибудь стороннюю dll используете?

Я бы тоже поэкспериментировал в этом направлении
DevПример универсальной функции для создания схемы компоновки данных#10 15.01.17 17:57
(9) дело ваше.
Но на всякий случай порекомендую ознакомиться с системой стандартов и методик на эту тему.

http://its.1c.ru/db/v8std#content:2149184148:hdoc

см пункты 1, 2 и 3.4

А по поводу лаконичности: лучше передавать в функцию правильные параметры, тогда попытка вообще не понадобится
DevПример универсальной функции для создания схемы компоновки данных#8 15.01.17 14:08
Идея интересная.

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

Если же ошибку нужно скрыть от пользователя, то в попытку нужно оборачивать сам вызов данной функции.
DevКак построить цепочку асинхронных вызовов#29 14.01.17 0:15
(19)
Вы скорее всего имели не таблицу значений, а массив структур, т.к. действия выполняются на клиенте
Но даже если мы будем использовать такую коллекцию, то нам придется выбирать между двумя невыгодными вариантами:
1. Либо писать процедуру обхода такой коллекции для каждого сценария. Тогда каждый такой обход будет содержать специфические для данного сценария действия. В чем же тогда простота?
2. Либо нужно написать очень универсальный метод, в котором каждый элемент коллекции шагов должен содержать множество ключей, типа "СоответствиеДействийИОтветов", "ОтветДляПрерыванияСценария" и т.п. в таком духе. Похожий подход с массивом структур уже реализован в БСП, правда он используется для другого. Если интересно, можете посмотреть в демо БСП (2.3.2) внешнюю обработку ЗагрузкаНоменклатурыИзПрайсЛистаСоСценарием.epf, а в ней функцию СформироватьСценарий(). Я предполагаю, что если попытаться написать универсально, то получится что-то подобное. Там довольно большой объем служебного кода, трудно быстро понять, какие параметры за что отвечают. Хотя этот механизм и рабочий, но порог вхождения в работу с ним - довольно высокий.

В моем примере (я его чуть усложнил) всего три универсальные обслуживающие процедуры и одна основная. При этом читаемость (описания шагов) не страдает, по сравнению с описанием сценария, а универсальность намного выше
DevКак построить цепочку асинхронных вызовов#28 13.01.17 23:26
(7) исправил пример в публикации по вашей рекомендации. Основная процедура вроде как упростилась.
Также немного усложнил пример, чтобы продемонстрировать гибкость данного способа
DevКак построить цепочку асинхронных вызовов#25 13.01.17 14:35
(23)
Согласен, что некачественное и что лучше сделать одну форму.
Но тут возникают противоречия.
Во-первых, если уже есть решение, которое построено через вопросы. Что делать? Часть вопросов будет в одной форме, а часть в отдельных окнах. Переделывать?
Во-вторых, бюджет на то, чтобы нарисовать интерфейс - больше, чем на более простое решение.
В-третьих, что делать, если нужно в одной из проверок открыть другую уже существующую форму (например, мастер создания Заказа поставщику)?
В-четвертых, был еще такой случай, что сначала нужна была одна проверка. Сделали через вопрос. Потом понадобилась еще одна. И никто уже написанное другим разработчиком не переделывает и в бюджет не закладывает.

Но мне подход без цепочки тоже нравится больше, в том случае есть возможность его использовать