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

0. Пишу код как картины (yurii_host) 1027 02.10.16 21:18 Сейчас в теме
Предлагаю несколько каркасов для создания новых объектов в типовых конфигурациях. Это выжимка из кода нескольких конфигураций, которая позволит быстро и красиво создавать и дорабатывать объекты метаданных с соблюдением идеологии исходной системы

Перейти к публикации

Комментарии
1. борян петров (TODD22) 15 03.10.16 09:33 Сейчас в теме
Я проанализировал различные объекты типовых конфигураций и создал заготовки для :

Всё это описано на ИТС. Можно ничего не анализировать, а просто почитать ИТС. Что то же мало кто делает....
2. Константин Куликов (Светлый ум) 196 03.10.16 11:15 Сейчас в теме
(1) TODD22, чтобы ИТС почитать к нему доступ нужен
3. Пишу код как картины (yurii_host) 1027 03.10.16 11:27 Сейчас в теме
(1) TODD22,
хотелось бы узнать с какой страницей ИТС вы сравниваете и насколько материал представленный в данной статье совпадает с описанным там. Приведите ссылку на конкретный текст.
Пока предполагаю, что вы путаете шаблон с примером. На ИТС приводятся примеры и методические рекомендации, то есть теория. Я привожу шаблоны, то есть кусочки кода из практики, которые можно вставить при разработке копипастом, изменив несколько деталей. Разница между шаблоном и примером в том, что в примере нужно думать, а в шаблоне вы берете код уже продуманный кем-то другим
Maxis; Новиков; +2 Ответить 1
4. борян петров (TODD22) 15 03.10.16 11:31 Сейчас в теме
(3) yurii_host,
хотелось бы узнать с какой страницей ИТС вы сравниваете и насколько материал представленный в данной статье совпадает с описанным там. Приведите ссылку на конкретный текст.

Про структуру модулей
https://its.1c.ru/db/v8std#content:2149184104:hdoc
5. Пишу код как картины (yurii_host) 1027 03.10.16 11:40 Сейчас в теме
(4) TODD22, на текущий момент у меня нет доступа к указанному вами разделу.
Планирую посмотреть позже, если совпадение действительно существенное, то заменю первый раздел в текущей статье на что-нибудь другое, т.к. не хочу повторять информацию, описанную в других источниках
6. борян петров (TODD22) 15 03.10.16 11:45 Сейчас в теме
(5) yurii_host,
о заменю первый раздел в текущей статье на что-нибудь другое

Лучше тогда не заменить, а дополнить описанием какие разделы в модулях и для чего. Для тех у кого доступа к ИТС нет.
h00k; yurii_host; +2 Ответить
7. Петр Базелюк (pbazeliuk) 1253 03.10.16 14:33 Сейчас в теме
(0) В "модуле менеджера объекта" забыли про директивы компиляции, это очень важно для работы конструктора запросов в "Управляемом приложении (Толстый клиент)", а так же для ЦУП.
h00k; artbear; +2 Ответить 1
8. Пишу код как картины (yurii_host) 1027 03.10.16 23:09 Сейчас в теме
(7) pbazeliuk, замечание справедливо. Исправил в статье
pbazeliuk; +1 Ответить
9. Валерий К (klinval) 199 05.10.16 11:33 Сейчас в теме
Вопрос про "3. Шаблон управляемой формы документа, в котором перед проведением требуется задавать вопросы пользователю с запретом модальных вызовов":
1. Для какой конфигурации у вас примеры? Например ОбщегоНазначения.ОбработатьЗаписьОбъектаВФорме например в БП 3.0.44.124 нет.

Замечания:
1. Не обработана ситуация, когда пользователь нажимает крестик. Он нажимает крестик задаётся 3 вопроса (1 стандартный - платформенный), пользователь ожидает, что документ закроется, но он остаётся. У меня есть статься по данной теме Как использовать ПоказатьВопрос в обработчике формы ПередЗаписью там эта ситуация разбирается.
2. Лучше как нибудь по-другому назвать переменную НеВыполнятьПроверкуПередЗаписью. Тоже когда-то называли переменные с НЕ в начале. Потом появлялись конструкции вида:
Если Не НеВыполнятьПроверкуПередЗаписью Тогда

, которые ломали мозг при прочтении... Долго приходится соображать что делать если НеВыполнятьПроверкуПередЗаписью = Ложь. Плюс где-то на ИТС видел рекомендации 1С, что так называть не стоит.
Думаю заменить НеВыполнятьПроверкуПередЗаписью на ОтключитьПроверкуПередЗаписью будет правильней. Логику менять не придётся, только название переменной.
10. борян петров (TODD22) 15 05.10.16 11:38 Сейчас в теме
(9) klinval,
НеВыполнятьПроверкуПередЗаписью

Да есть такая рекомендация на ИТС.
Мне тут то же досталась самописная конфигурация там таких "Не НеЗагружено" и тд по 10 штук в одном модуле... сиди мозг ломай....
11. Пишу код как картины (yurii_host) 1027 05.10.16 11:58 Сейчас в теме
(9) klinval, данный пример из ерпи. Модуль в оригинале называется ОбщегоНазначенияУТКлиент.
Мое мнение такое: если я дорабатываю типовую конфигурацию, то стараюсь максимально следовать принципам, которые в ней используются. Если переменная называется так, и я с этим немного не согласен, то все равно использую подход принятый в системе.
Это совершенно нормально, что не все согласны абсолютно со всеми именами переменных, процедур и т.д.
Если каждый начнет применять собственный подходы (как обычно и происходит), то начинается каша.

По поводу БП - я посмотрю чуть позже, как там реализовано, может быть имеет смысл дополнить статью, подумаю
12. Пишу код как картины (yurii_host) 1027 05.10.16 12:27 Сейчас в теме
(9) klinval, не согласен с высказанным замечанием, что покрываются не все случаи. Ваше предположение не соответствует действительности. В моем примере кнопка "Х" не доступна.
13. Валерий К (klinval) 199 05.10.16 12:44 Сейчас в теме
(11) yurii_host,
Если переменная называется так, и я с этим немного не согласен, то все равно использую подход принятый в системе.

Согласен, что делать то. Но я же не знал, что это вынужденное название из типовой конфы. Вот только получается 1С-ники не следуют своим же правилам...
14. борян петров (TODD22) 15 05.10.16 12:47 Сейчас в теме
(13) klinval,
Вот только получается 1С-ники не следуют своим же правилам...

Когда разбирался в стандартах разработки, я сразу смотрел в типовых(УТ 11 и БП 3). часто встречалось отличие от соглашения по написанию кода.
Там то же люди пишут :)
15. Валерий К (klinval) 199 05.10.16 12:48 Сейчас в теме
(12) yurii_host, я скачал ваш CF-ник. Развернул на пустую базу и крестик доступен (см. приложенный файл).
Но допустим туда куда вы разворачивали крестик недоступен почему-то стал. Вы предлагаете другим тоже делать недоступным "Х" на всех стандартных или новых документах, чтобы предложенный функционал покрывал все случаи?
Прикрепленные файлы:
16. Пишу код как картины (yurii_host) 1027 05.10.16 12:59 Сейчас в теме
(15) klinval, я невнимательно прочитал замечание. Ваша правда.
Чуть позже посмотрю как это обходят в типовых. Исправлю в статье также.
17. Валерий К (klinval) 199 05.10.16 13:25 Сейчас в теме
(16) yurii_host, мне Сергей Ожерельев (Поручик) сказал, что
В форме контрагента в бухгалтерии 3.0 последних релизов тоже используется вопрос перед записью примерно по описанной методике.

На тот момент (03.07.2015) так и было, сейчас же не смотрел. Я оттуда код и взял, т.к. сам до этого не мог обойти эту ситуацию. У меня способ изложен в п.5 статьи.

По поводу покрытия на 100% когда "перед проведением требуется задавать вопросы ": к сожалению это невозможно. В той-же типовой БП вот с чем я столкнулся:
В обработчик формы «ПередЗаписью» программа не заходит, если: 1) пользователь нажал на кнопку «Пометить на удаление / снять пометку»; 2) если пользователь нажал на не проведённом документе кнопку «ДТ/КТ». И это не всё: если вы на форме документа создали всё, как я написал, и пользователь из формы списка перепроведёт документ – то никаких вопросов программа ему не задаст. Необходимо все интересующие вас кнопки на форме списка заменять на свои и отслеживать действия пользователя. Ещё у документа может быть не одна форма документа, а несколько (например, документ ПоступлениеТоваровУслуг в БП 3.0, где 3 формы: общая, товары и услуги). В каждой форме документа надо написать много кода…

+ Можно провести документ с формы обработки (внешней или внутренней)... Некоторые моменты ещё можно обойти, но слишком трудозатратно. Да на 100% покрытия обычно и не требуется.
18. Пишу код как картины (yurii_host) 1027 05.10.16 21:31 Сейчас в теме
(17) klinval, спасибо за подробное описание. Замечание абсолютно справедливо. Посмотрел решение в типовой.
Добавил вот такой код:
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
	
	ПринудительноЗакрытьФорму = Истина;

КонецПроцедуры
...Показать Скрыть

Теперь поведение корректное. Обновил в тексте публикации и в примере
19. Александр Анисков (vandalsvq) 697 17.11.16 09:26 Сейчас в теме
Я бы в структуру областей модуля формы добавил еще немного областей

#Область УправлениеФормой - здесь сконцентрированы все методы управления свойствами элементов формы (в спойлере пример процедур)
Методы управления свойствами элементов формы

#Область ЗавершениеНемодальныхВызовов - хотя это спорный момент, кому то нравится по коду распиханные экспорты, мне лично собранные в одном месте
#Область СлужебныеПроцедурыИФункции_БСП - здесь все методы для подсистем БСП которые находятся в форме, причем выделенные в отдельные области вроде Печать, Свойства и т.д.
20. Роман Уничкин (unichkin) 401 11.01.17 17:17 Сейчас в теме
(1)(2)В ИТС уже несколько лет работает тест-драйв.
Хорошая статья, такие нужны - и как можно больше. Чтобы наконец донести свет в массы:) По моему опыту - 6 из 10 программистов о ИТС тупо не знают. А из оставшихся трое - кладут на все это со словами "мне некогда", и тратят в 10 раз больше времени в попытках разобраться со своим-же кодом...
21. Роман Уничкин (unichkin) 401 11.01.17 19:26 Сейчас в теме
(14)
Когда разбирался в стандартах разработки, я сразу смотрел в типовых(УТ 11 и БП 3). часто встречалось отличие от соглашения по написанию кода.

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

(19) По идее, все подобные области должны быть отнесены к разделу "СлужебныеПроцедурыИФункции". Основные разделы модуля регламентированы - именно к ним что-то добавлять не надо. Вот внутри разделов уже можно помещать свое. Скажем, если сложная форма и есть куча обработчиков элементов формы, их можно как-то логически разнести - по страницам например
Оставьте свое сообщение