Правила программирования и автоматизации

Публикация № 789709

Разработка - Математика и алгоритмы

программирование разработка

73
Изложил свой опыт программирования, больше десяти лет.

1

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

2

Помните, что телепатов нет. Ещё раз. Телепатов нет. Код, а равно и интерфейс пользователя, должны быть понятными и не должны содержать умолчаний, понятных только Вам.

3

Названия переменных "Пер1", "А", "Сп" допустимы только в студенческих работах, отладочных обработках или крайне простых процедурах, но не в промышленных решениях. Название переменной должно отражать её содержимое, в крайнем случае нужно оставлять комментарий при её инициализации.

4

Процедуры и функции должны быть как пуля — небольшими и быстропонимаемыми. Вернее, процедуры и функции могут быть большими, а иногда и очень большими, но только в том случае, если они остаются безопасными (пункт 5), то есть название процедуры отражает суть её действия, не больше и не меньше.

// добавление подписантов в файл PDF (последней страницей) из таблицы подписантов в 1С, 
// а также добавление нумерации страниц
Процедура ПолучитьФайлСНумерациейИПодписями(НакопленныеДанные) 
	
	ОпределитьВозможностьСклейкиСПодписями(НакопленныеДанные);
	Если НакопленныеДанные.МожноСклеить = Истина Тогда
		ПолучитьИзначальныйФайл(НакопленныеДанные);
		ПодготовитьСредствоРаботыСPDF(НакопленныеДанные);
		СгенерироватьФайлСлужебнойИнформации(НакопленныеДанные);
		ПолучитьИнтересующиеДанныеИзФайлаСлужебнойИнформации(НакопленныеДанные);
		СоздатьPDFСНумерацией(НакопленныеДанные);
		СоздатьPDFСПодписями(НакопленныеДанные);
		СклеитьФайлы(НакопленныеДанные);
		УдалитьВременныеФайлы(НакопленныеДанные);
	КонецЕсли;
	
КонецПроцедуры

 

5

Процедуры и функции должны быть безопасными, то есть — а) их название должно отражать суть б) они не должны делать то, что от них не ожидается исходя из названия

6

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

Если Ваше решение сложное и запутанное, значит, количество уровней абстракции, которое Вы использовали, является недостаточным.

Хорошее сложное решение отличается от плохого сложного решения количеством уровней абстракции.

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

7

Реализация очень сильно зависит от постановки задачи.

Можно поставить задачу "отправлять бухгалтеру на почту уведомления о поступлении РКО с видом Подотчёт", а можно поставить задачу "Реализовать универсальный механиз рассылки уведомлений по триггерам". А ещё можно поставить задачу "Найти на Инфостарте универсальный механиз рассылки уведомлений по триггерам".

8

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

9

Если схожая задача возникает 3 раза, значит, она возникнет ещё 300 раз, и пора подумать о создании универсального механизма

10

Пользовательский интерфейс должен быть максимально лёгкий. Запрещается перегрузка интерфейса лишними элементами. Любые возможности нужно систематизировать — объединять в группы, выносить на отдельные вкладки и так далее. Если пользовательский интерфейс перегружен реквизитами и полями, назначение которых понятно только избранным или требует отдельной инструкции, значит, интерфейс очень плохой. 

11

При разработке пользовательского интерфейса не надо мельчить. Вам доступны полные страницы! Если одновременно показываемых пользователю элементов слишком много, значит, разработка идёт неправильно.

12

Автоматизация повышает эффективность учёта, но при одном условии, которое очень важно выполнять — при условии правильности вводимых данных. Например, если Вы неправильно заполните информацию о номенклатуре, любые автоматизированные обработки номенклатуры станут бесполезны.

12А

Хорошая автоматизированная система — это очень жёсткая диктатура. Эта диктатура может быть просвещённой, и её правила могут быть очень гибкими, но они должны быть абсолютно обязательными к исполнению, если мы конечно хотим получить от АС ту пользу масштабируемости, ради которой всё и затевается. Наказания за нарушения правил диктатуры ведения данных в АС должны быть суровы, иначе человеческий фактор дискредитирует все благие намерения.

12Б

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

13

При проектировании следует чётко и ясно определять уровни взаимосвязи объектов — один к одному, один ко многим, много к одному, много ко многим, и исходя из этого сразу планировать правильную логику. Например, если в чеке для видов оплат сразу спроектировать таблицу "оплаты", всё становится на свои места. Можно платить частично наличными, частично картами, частично яндекс.деньгами. Или наоборот — заранее заложить при проектировании, что вид оплаты должен быть один и только один, а если видов оплаты несколько — оформлять несколько чеков. Оба подхода имеют право на жизнь и свои плюсы и минусы.

73

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Degrement 121 21.02.18 16:41 Сейчас в теме
14 Не усложнять. Чем проще алгоритм и структура метаданных, тем проще его поддерживать, дорабатывать + как правило производительность выше.
cleaner_it; vakham; Nelli_A86; w.r.; +4 Ответить
65. w.r. 467 23.02.18 12:45 Сейчас в теме
(1) вот этим грешат многие начинающие программисты. Я для себя сделал вывод: хорошее решение - простое решение. Лучше 7 раз подумать и написать небольшой правильный код, чем начать писать, а потом уйти в неведомые дебри, которые уже не решают задачу. Точка отсчета очень важна
Dmitri93; user657734_YGREEN; vakham; +3 Ответить
96. LexSeIch 202 27.02.18 03:34 Сейчас в теме
(1) Точно: Keep It Simple Stupid - KISS принцип в программировании - хорошая вещь!

В 80-х годах, уже прошлого столетия, мне как-то в руки попал документ (оригинал еще на магнитной ленте, от фирмы Motorola но могу и ошибиться) где были сформулированы правила оптимизации систем под общим заголовком Keep It Simple, Stupid! :

1. It’s easier to get a working system efficient then it is to get an efficient system working. (Легче сделать рабочую систему эффективной, чем эффективную систему рабочей.)

2. Optimaze a system only if it fails a performance test. It is futile to optimaze a system just for the fun of it, if that optimization brings no practical benefit. (Оптимизируйте систему, только если она не проходит теста производительности. Бесполезно оптимизировать системы только для удовольствия, если оптимизация не приносит никакой практической пользы.)

3. Simplicity is a virtue that bears its own rewards. (Простота это качество, имеющее собственную ценность.)

4. Optimize only the parts of the system worth optimizing. (Оптимизируйте только те части системы, которые действительно требуют оптимизации.)
afk; getnight; klinval; user657734_YGREEN; +4 Ответить
121. Painted 28 16.04.18 09:24 Сейчас в теме
(96)
Optimaze
Глаза режет. ((
for_sale; +1 Ответить
124. LexSeIch 202 10.05.18 08:15 Сейчас в теме
(121) Как ни странно, есть и такой термин - синоним...
Прикрепленные файлы:
125. Painted 28 10.05.18 09:30 Сейчас в теме
(124)
Как ни странно
Действительно, странно. ))
for_sale; +1 Ответить
2. viking7 21.02.18 17:52 Сейчас в теме
Статья хорошая. Но об этом всем я узнал еще на 1 курсе своего профильного обучения. От себя добавлю, что хорошие комментарии и пояснения в коде облегчат вам или приемнику жизнь в разы.
9. swimdog 678 21.02.18 23:40 Сейчас в теме
(2) Хороший код не нуждается в комментариях)
nik2500; AronMav; Alligator84; Kassyas; ZUL_MTFKA; Dmitri93; nikivr; coollerinc; dedkov; TreeDogNight; ACE$; itriot11; ipoloskov; DarkAn; dj_serega; zarucheisky; ybatiaev; Dr.LektoR; Ликреонский; IvanBoychuk123; tsukanov; bsturtle; FesenkoA; amon_ra; awk; AlexGroovy; rusmil; fancy; ArchLord42; +29 Ответить
105. vakham 9 28.02.18 10:01 Сейчас в теме
(9) Гусару триппер не помеха?
110. konstantinv 28.02.18 10:15 Сейчас в теме
(9)Полностью согласен. У докладчика нет информации по комментариям. Он пишет о чистом коде, но не упомянул о комментариях совсем. Чистый и понятный код не нуждается в комментариях. Один из программистов, которого встречал буквально год назад, чтобы не забыть, писал комментарии в начале модуля, в начале процедур/функций, в конце модуля (о добавленных/измененных реквизитах на форме). Это тоже одна из болезней начинающих программистов. Названия функций должны быть простыми и не требовать комментариев. Но это не значит что их совсем не должно быть.
cleaner_it; +1 Ответить
3. SandDanGlokta 21.02.18 17:55 Сейчас в теме
Насчёт 12Б. С точки зрения программиста я полностью согласен с данным тезисом. Однако не думаю, что с таким положением дел согласятся собственники предприятий. Для них ведь на первом месте получение прибыли. И именно для этого им нужна автоматизация. Для сокращения издержек, прозрачного учёта и тд. Но если ради автоматизации придётся откладывать условные накладные на миллионы долларов, то какой им толк от неё? Да, в базе всё будет красиво, правильно, чётко и ясно. Но ведь на первом месте для них прибыль, а не отлаженный механизм учёта. И когда условный программист говорит условному владельцу бизнеса "Сейчас мы не можем обработать этот выгодный заказ от клиента, т.к. мы потом не сможем автоматически обработать эту номенклатуру", то вряд ли он встретит одобрение со стороны собственника.
sulfur17; TreeDogNight; creatermc; acanta; EliasShy; bulpi; user774630; klinval; +8 Ответить
4. leosoft 142 21.02.18 18:06 Сейчас в теме
Вот если бы 1С придерживался этих правил. :)
Арчибальд; user748289; e-tixom; vakham; sergathome; ACE$; arakelyan; dj_serega; EliasShy; zqzq; mostvante; Gilev.Vyacheslav; +12 1 Ответить
28. logarifm 1047 22.02.18 12:15 Сейчас в теме
(4)\а в чем 1С не придерживается этих правил?

К примеру у автора процедура так себе. Нет входного описания параметра, а по стандарту он должен быть описан иначе не понятно, что это?Структура, таблица значений, строка дерева значений Ит.д.
ger_kar; sergathome; +2 Ответить
44. leosoft 142 22.02.18 14:50 Сейчас в теме
(28) Не усложнять. Чем проще алгоритм и структура метаданных

1С любит налепить регистров в огромных количествах!

Например, раньше в зарплате обходились одним регистром, а сейчас
под сотню скоро будет! Тоже и в Бухгалтерии
45. Dzenn 344 22.02.18 14:53 Сейчас в теме
(44) 1С как раз не усложняет. Не забывайте, что типовые конфигурации 1С являются универсальными.
46. leosoft 142 22.02.18 15:04 Сейчас в теме
(45) А раньше не было все универсальным? И хватало одного регистра. А сейчас,
особенно с ЗУПе их столько... Информация по сути дублируется, возможны рассогласования и т.п.
58. Brawler 449 23.02.18 10:28 Сейчас в теме
(46) Да, ЗУП сложен, но как по мне для юзеров он стал куда проще, да как и для меня.
Анализ данных в регистрах упростился, главное понять для себя поток данных, что от чего зависит и куда пойдет.
59. acanta 67 23.02.18 10:52 Сейчас в теме
(58) Прикольно кстати. Бухгалтерия сложна, главное понять принцип двойной записи.
(18) +Программист может подменять любого работника на время его отпуска или на время поиска/обучения нового работника.
Если программист может подменять ТОЛЬКО генерального директора - это не программист.
62. Brawler 449 23.02.18 11:53 Сейчас в теме
(59) Бухгалтерия сложна в части налогового учета (где и как правильно учесть затраты по большей части), а принцип двойной записи вообще элементарщина, из одной копилки вынь, в другую положи, в одном месте убыло, в другом прибыло, тут главное запомнить номера копилок и их смысл (Консультант+ в помощь). Ровно такие же проблемы у людей с пониманием копирования файлов на диске и самое сложное с вырезанием в одном месте и вставкой в другом. Меня порой веселит, как в крупных конторах, в бухии сидят отдельные бушки под отдельный вид учета, ну допустим только занимается учетом ОС и НМА, а другая списанием в производство, третья на приходных накладных, четвертая на продажах... и блин вроде бушки и должны шарить во всем дебете с кредетом, а не взаимозаменяемые...

Программист не сможет заменить прям любого работника, я хоть к примеру и прошареный в бух. учете, кадровом учете, расчете ЗП, но плеваться буду, если меня заставят сдавать регламентированные отчеты, - это адище и адище это оплачивается людям с соответствующей профессией, а программисты как бы все же призваны заниматься другим делом, автоматизация там, оптимизация, внедрение и другие красивые словечки. Ну сделаю я отчет в спешке, а дальше что? А если есть проблемы, нужно позвонить подружке в ФСС или ПФР, а у меня та её там нет, у бушек как правило уже свой круг знакомых у которых они могут узнать контакты и прочее, а я буду как дурак среди прогеров 1С искать контакты))

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

Все должны заниматься своим делом, однако на долю прогеров 1С свалилась такая ноша, что приходится шарить в своем деле и предметных областях с ним связанных, и случается так, что шаришь лучше юзеров работающих в системе. А, ну и раз ТЫЖ ПРОГРАММИСТ, ты должен шарить во всей админской/сервисной тематике и как два пальца об асфальт заправить любой картрижд, усилить громкость звука в скайпе...
67. acanta 67 23.02.18 16:05 Сейчас в теме
(62)
Генерала прогер тоже не заменит, так как найдутся люди по рангу выше его, но ниже генерала.

Канэчна найдется! Свято место пусто не бывает.
Но ПРОГРАММИСТ стоит ДЕШЕВЛЕ.
В лучшем случае через какое то время фикси деградирует до банального гастарбайтера - штрейхбрекера.
Посему пользы от своевременной перемены мест работы гораздо больше чем неудобства от ошибок в коде, доставшихся от коллег или коллегам по цеху.
61. leosoft 142 23.02.18 11:51 Сейчас в теме
(58) Игорь, речь не о сложности интерфейса, а о перегрузке количества регистров. Вы же прекрасно знаете, что творилось и продолжает твориться с НДФЛ с декабря в 3.1.4 и далее...
64. Brawler 449 23.02.18 12:23 Сейчас в теме
(61) Проблема не столько в типовых конфигурациях 1С, сколько в даунизме наших законотворцев... то ли еще будет...
115. e-tixom 92 28.02.18 15:54 Сейчас в теме
(58)Вы, когда подобные комментарии пишете, пишите от своего имени. В нашей фирме еще ни один юзер не дал положительного отзыва об интерфейсе "Такси". У меня вот тоже в голове не укладывается: как такая фундаментальная опция "Изменить вариант отчета" могла угодить в меню "Прочее". Или, например, как среднестатистическому пользователю объяснить, что две кнопки "еще" на форме документа относятся к разным объектам формы? Я даже после года работы их путаю.
116. Dzenn 344 28.02.18 16:39 Сейчас в теме
(115) Интерфейс "Такси" — самый лучший интерфейс из всех возможных. А придираться по мелочи можно к чему угодно.
Dmitri93; +1 Ответить
120. e-tixom 92 02.03.18 10:17 Сейчас в теме
(116)А я не придираюсь. Но законы человеческого восприятия еще никто не отменял. После дня работы с этим "такси" в глазах строчки прыгают и руки трясутся. Потому что на экране все прыгает. Приходится зрение напрягать и руки, чтоб попасть точно в цель. Ну я лично эту тему закрываю. Какой смысл спорить с теми, кто нам работу дает? Бесполезно это.
102. Nelli_A86 28.02.18 08:28 Сейчас в теме
(46)По крайней мере, информацию из них получать стало гораздо проще. Интереса ради, попробуйте посчитать среднюю ЗП в ЗиУП 2.5 или загляните в процедуру автозаполнения Отражения зарплаты в бух. учете, после этого ЗиУП 3 со своими регистрами просто праздник...
114. leosoft 142 28.02.18 12:28 Сейчас в теме
(102) Особенный "праздник" начинается с разборками 6-НДФЛ. :)
Dmitri93; +1 Ответить
5. ksnik 348 21.02.18 18:53 Сейчас в теме
У меня тоже есть методички о программировании, даже по проектированию программ и разработке, так же в 1С, кое-что выложено здесь на Инфостарте.

Я раньше работал доцентом в институте (впрочем до преподавания был админом, разбирался с 1С, поработал немного во франче но зарабатывал не много). После 5 лет преподавания сейчас уже 6 лет профессиональный 1Сник. Спустя шесть лет данной публикацией навеяло кое-что добавить.

Видел я разных студентов и учителей, программистов и начальников. Сам я постигал азы программирования с детства на коленке, курсов не кончал, а преподавал так - компилировал учебники и статьи из интернета, смотрел, показывал и делал видеокурсы, практическими заданиями правда все больше готовыми пользовался. По роду деятельности программистом после института и в возрасте уже нет особой возможности много учиться, так что я - программист из окопа, занимался по началу все больше оперативной деятельностью, много был на поддержке пользователей в чем не особо пригодилось чему учили и чему учил, так как на первом месте даже не качество а объем и скорость разработки, ну и соответственно умение в 100 процентов случаев достигать положительного результата. Даже если в текучке ошибся - пользователь напишет или сам позвонит и покажет, все такое в рабочем режиме без проблем устраняется. Очень полезная штука в организации труда на поддержке Битрикс, документооборот с заявками на ИТ. Вот если неправильно разработать метождику проекта или не до конца продумать, вот тут уж проблема может быть гораздо серьезнее.

Как-то вышло маститые сертификаты с меня не спрашивали, но первый руководитель отдела 1Сник был у меня Разработчик с большой буквы, который отличался глубоким знанием предметной области и умением делать абсолютно всё необходимое в работе, даже по админской части, все его очень уважали. Не было ни одного вопроса, который он не мог бы решить на предприятии.

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

В проектной деятельности больше всего помогает знание основ моделирования IDEF и чтение SAP ARIS (но рисовать схемы ARIS трудоемко). Всяко и прежде всего надо обязательно начинать проекты с продуманного ТЗ потому что без него понимание и общение с заказчиком проекта очень непросто складывается.

А программирование, что уж тут, 7 операторов да объектная модель... Оно и к месту, что статья такая коротенькая. Больше всего оказалось нужно для использования меня по назначению как 1Сника - выучить используемые на предприятии конфигурации, научиться помогать сотрудникам, помогать бухгалтерам, разбираться в коде, искать ошибки в учете... Ну и конечно на производстве в области программирования даже в оперативной деятельности, особенно как правило систем несколько (учетные, складские, транспортные,...), сложные задачи.
vakham; Adam12345678; AtPups000; +3 Ответить
10. swimdog 678 21.02.18 23:44 Сейчас в теме
(5) Пора статью писать, "Мой путь в 1С"
26. logarifm 1047 22.02.18 12:13 Сейчас в теме
(5)Все круто, я думаю у многих по-разному сложилось в жизни только вот к чему эта исповедь?
42. ksnik 348 22.02.18 14:09 Сейчас в теме
(26) в соответствии с темой обсуждаемой статьи я написал о том что оказалось мне полезным для развития как 1Снику. И дополнительно захотелось привести ссылку на бесплатные методические указания по общим вопросам разработки, в том числе на 1С.
6. uri1978 126 21.02.18 19:07 Сейчас в теме
8. Информация не должна дублироваться. Информация не должна дублироваться. Информация не должна дублироваться. Если Вам нужен какой-то необычный срез данных, лучше использовать временные таблицы или сложные запросы, чем дублировать информацию в новый регистр или справочник.


Не соглашусь. Денормализация БД иногда единственный выход чтобы заметно ускорить работу на огромных базах.
vaskomain; Pervuy; creatermc; корум; lina_00; МихаилМ; boln; Artem-B; acanta; ipoloskov; dj_serega; pbabincev; Ликреонский; baton_pk; bulpi; sovital; gubanoff; wbazil; klinval; Dream_kz; AlX0id; asved.ru; Art1387; Zeskord; neikist; YOr!k; Yashazz; +27 Ответить
7. Dzenn 344 21.02.18 19:09 Сейчас в теме
(6) Ну тогда это не дублирование, а денормализация)
8. Yashazz 2844 21.02.18 19:22 Сейчас в теме
(6) Да. Ничто не догма. Иногда приходится идти на чудовищные с точки зрения теории и "хорошего тона" решения. Они уродливы, ненормализованны, задублированны, как угодно ещё страховидны. Но эти решения дают отличную производительность. Помните, вы не эстетствуете и не пытаетесь "1С-Совместимо" получить (что вообще анекдот, учитывая, как они сами свои стандарты не соблюдают), вы делаете решение. Решение проблемы. И если временные таблицы сжирают оперативку сервера, а наплодить регистров - это выход, то почему бы нет?
sulfur17; acanta; user774630; Art1387; ksnik; +5 Ответить
53. triviumfan 10 22.02.18 18:25 Сейчас в теме
(8)
что вообще анекдот, учитывая, как они сами свои стандарты не соблюдают

О чём конкретно речь? Приведи примеры, пожалуйста.
12. YOr!k 86 22.02.18 02:13 Сейчас в теме
(6) я бы этот совет вообще перевернул с точностью до наоборот:

"Если вам нужен какой-то необычный срез данных, лучше использовать новый регистр или справочник, чем сложные запросы или алгоритмы получения данных"

практически всегда под сложный отчёт / механизм лучше предусмотреть отдельные регистры, чем городить сложные, непонятные и медленные запросы и алгоритмы

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


Ещё из спорного:
"7. Реализация очень сильно зависит от постановки задачи" -> "Эффективность реализации очень сильно зависит от того насколько одинаково понимают задачу (её прикладной смысл и область применения) "постановщик задачи" и "исполнитель задачи (программист)"

"12Б Лучше вообще не ввести документ, даже если это приходная накладная на миллион долларов, чем ввести его неправильно" -> "лучше закрыть часть проблемы оперативно, чем ждать когда появится возможность закрыть всю проблему сразу"
wonderboy; sulfur17; creatermc; ipoloskov; klinval; Morkhe; Art1387; Zeskord; +8 Ответить
15. asved.ru 36 22.02.18 08:24 Сейчас в теме
(12) +++
95% населения - идиоты разработчиков не имеют ни представления о механизмах работы СУБД, ни прогноза на объемы обрабатываемой информации. Т.е. не могут сказать, как будет работать тот ли иной запрос на продуктивной базе.
103. vaskomain 28.02.18 08:53 Сейчас в теме
(15) Иногда об этом (объемы обрабатываемой информации) не знают даже конечные пользователи. Жизнь очень переменчива - оптимизация это не "что-то что сделал раз и потом все время хорошо работает". Оптимизация - это постоянный процесс, причем иногда оптимизация заранее даже вредна (об этом писал еще Кнут)
101. Dragonim 97 28.02.18 08:01 Сейчас в теме
(6) Просто человек ни когда не смотрел движение по регистрам в ERP. Там дублирование это основа основ, и что-то мне подсказывает это не с проста.
106. Dzenn 344 28.02.18 10:06 Сейчас в теме
(101)
(6) Просто человек ни когда не смотрел движение по регистрам в ERP. Там дублирование это основа основ, и что-то мне подсказывает это не с проста.
не путайте дублирование с учётом
11. mitia.mackarevich 27 22.02.18 02:00 Сейчас в теме
Все конечно здорово. Но(теперь моя очередь быть кэпом) прошу добавить самое главное - делайте бэкапы. Вернее не так, правильно - делайте и проверяйте бэкапы. Иначе рискуете остаться пандой=)))
ipoloskov; bulpi; +2 Ответить
14. Art1387 4 22.02.18 08:00 Сейчас в теме
(11)Если установлен Microsoft SQL Server то проще через агент регламентное задание настроить, на бэкап и разворачивание бэкапа на тестовую базу. Заодно и тестовая база со свежими данными будет под рукой.
13. HAMMER_59 186 22.02.18 07:19 Сейчас в теме
Уровень абстрактности статьи крайне высок, те кто уж прошел такой же путь как автор - поймут, остальные могут и не принять.
"Код программы должен быть простым" я думаю слово понятным подходит больше. Мысль то правильная и хорошая, можно еще добавить, то что понятно здесь и сейчас, в другое время может стать абсолютно непонятным.

Также программа должна быть без ошибок, а еще должна быть оптимальна с точки зрения производительности и масштабируемости.
16. AlexGroovy 22.02.18 09:10 Сейчас в теме
Жалко,что разработчики типовых конфигураций далеко не всегда следуют этим правилам)))
sergathome; +1 Ответить
17. TODD22 18 22.02.18 09:11 Сейчас в теме
(16)
Жалко,что разработчики типовых конфигураций далеко не всегда следуют этим правилам)))

Так устроился бы в 1С и научил бы их там всех программировать. За одно и качество тиражных решений поднял.
ZUL_MTFKA; dj_serega; tinkerbell; mitia.mackarevich; +4 1 Ответить
48. ybatiaev 46 22.02.18 16:31 Сейчас в теме
(17) Как то писал разработчикам расширения что они рожают очередного монстра. Тем более у меня был опыт сопровождения системы IBSO (Новосибирск) с подобным ПРОСТЫМ механизмом. Кто там будет слушать то? Практически всегда ответ что "САМ ДУРАК и не понимаешь всей тонкости реализации". В системе IBSO в модулях расширениях(хуках) лежали только те модули, в которых меняется код, а не всё подряд(формы, реквизиты, доп. объекты метаданных). Помнится делал одно простое расширение, так у меня в это расширение 10% всей конфигурации перенеслось. "Круть"... Хотя есть и плюсы, более просто сделать изменить форму, не сталкивался правда с тем, что обновление конфигурации потребует обновить форму пока, скоро наверно уже начнётся.
Dmitri93; AlexGroovy; +2 Ответить
23. Dzenn 344 22.02.18 11:13 Сейчас в теме
(16) в основных типовых решениях — следуют в полной мере.
41. AlexGroovy 22.02.18 13:18 Сейчас в теме
(23)О да,особенно в ДО,прям ягодка.Печатные команды добавлены кнопками на форме!!!!
И куча избыточных процедур где сверху в комментариях чётко написано,что нам пока это менять лень,в будущих релизах уберём.
sergathome; uri1978; +2 Ответить
51. uri1978 126 22.02.18 17:19 Сейчас в теме
(41) В WMS тоже "интересный подход" - строки табличной части документа - это отдельные документы. Проводки делают не сами документы, а спец. документы им подчиненные. Изменение статусов документов регламентными заданиями, провел кладовщик и ждет когда статус документа поменяется. Я понимаю, что это такое архитектурное решение, но нельзя же так.
В ДО точно такая же ситуация - задумка хорошая, реализация мрачная. Система прав вообще жесть.
sergathome; AlexGroovy; +2 Ответить
66. genayo 23.02.18 15:55 Сейчас в теме
(51)Почему так сделано в WMS, и что этот подход дает - вы просто не поняли. Про ДО согласен на 100%.
68. uri1978 126 23.02.18 17:57 Сейчас в теме
(66) WMS очень удобен, особенно удобны рабочие места. Кладовщиков от увольнения спасло повышение зарплаты :). Франчайзинг отчитался о еще одном "успешном" внедрении 1С. К отваливаниям ТСД уже привыкли, очищать регистр "Текущее действие пользователя ТСД" кладовщики обучены. В общем "Всё хорошо прекрасная маркиза, всё хорошо, всё хорошо".
98. sergathome 27.02.18 09:32 Сейчас в теме
(41) ДО и ЗУП 3 - два достойных образчика соблюдения стандартов, ага. Больше всего, конечно, раздражает основной код на формах. В ДО, например, весь движок исполнения задач сдублирован - для интерактивного исполнения - всё на формах, для фонового-по почте - правильно, вроде, сделано, в модулях и объектах, но тока с ошибками и функционал не полный. В ЗУПе же, например, весь расчет отпусков на - форме...
18. VZyryanov 22.02.18 09:26 Сейчас в теме
Правила 12 это не про программирование.
Правило 0. Программист не должен подменять собой генерального директора.
vaskomain; acanta; +2 Ответить
19. Somebody1 66 22.02.18 09:33 Сейчас в теме
Хочется поспорить с п. 8 - "Информация не должна дублироваться". Иногда для повышения быстродействия алгоритма приходится хранить информацию с избытком. Например, для формирования какой-то сложной отчётности необходимо заранее готовить данные и хранить их отдельно от исходных данных, чтобы потом быстро собрать в отчёт. Таким образом, мы храним информацию избыточно, но повышаем скорость формирования отчёта.

А вот дублирования программного когда следует, конечно, избегать.
20. uri1978 126 22.02.18 10:22 Сейчас в теме
Пункт 0
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Стив Макконнелл
nik2500; Dmitri93; TreeDogNight; AlexGroovy; ipoloskov; dj_serega; bulpi; +7 Ответить
25. Vovan1975 14 22.02.18 12:05 Сейчас в теме
(20) правда непонятно как быть если ты сам склонный к насилию психопат...
29. logarifm 1047 22.02.18 12:16 Сейчас в теме
97. ripreal1 336 27.02.18 09:21 Сейчас в теме
(29)
К этой книге надо добавить постфикс for dummies
21. uri1978 126 22.02.18 10:49 Сейчас в теме
Пусть меня закидают камнями, но я скажу. Основная проблема в том что "программист 1С" собственно программистом не является. Все эти прописные истины, которые привел автор статьи преподаются или еще в школе или на первом курсе института. Изложены в книгах (пример выше приводил - "Совершенный код. Стив Макконнелл"), но увы 1С-ники с этим не знакомы. Начинают не с азов программирования, а сразу с кода. Отсюда и имеем пресловутые "запросы в цикле". Порог вхождения очень низок и это сыграло злую шутку.
sergathome; МихаилМ; Yashazz; neikist; acanta; Infactum; dj_serega; ybatiaev; AlexCherdakov; +9 Ответить
22. Dzenn 344 22.02.18 11:11 Сейчас в теме
(21) Вы правы, мистер д'Артаньян
pbabincev; user774630; +2 Ответить
36. tinkerbell 22.02.18 12:48 Сейчас в теме
(21) Да, я только через несколько лет работы узнала, что запрос в цикле - это не хорошо. Но самое ужасное - когда такое пишут программисты с 15-летним стажем и при этом ругают платформу 1с...
104. vaskomain 28.02.18 08:55 Сейчас в теме
(21) Порог вхождения низок теперь везде, не только в 1С, но и во всяких frontend / backend системах веб
108. Dzenn 344 28.02.18 10:08 Сейчас в теме
(104)
(21) Порог вхождения низок теперь везде, не только в 1С, но и во всяких frontend / backend системах веб
низок, высок — это всё оценочные характеристики. Хорошие специалисты всегда будут цениться, вне зависимости от наших представлений о пороге.
24. uri1978 126 22.02.18 11:22 Сейчас в теме
27. Vovan1975 14 22.02.18 12:14 Сейчас в теме
все гораздо проще.
Основной принцип - "делай это проще".
И пофик на запросы в цикле и прочих макконеллов.
30. logarifm 1047 22.02.18 12:18 Сейчас в теме
(27)Относится к Макконнеллу в таком тоне может только бездарность которая ленится даже синтаксис читать.
TreeDogNight; +1 Ответить
32. Vovan1975 14 22.02.18 12:20 Сейчас в теме
(30) бгг... Взрослый вроде дядя, а такой наивный...
31. Dzenn 344 22.02.18 12:19 Сейчас в теме
(27) принцип "keep it simple, stupid" работает, но до определённого предела
38. Vovan1975 14 22.02.18 12:51 Сейчас в теме
33. bulpi 157 22.02.18 12:22 Сейчас в теме
" Если пользовательский интерфейс перегружен реквизитами и полями, назначение которых понятно только избранным или требует отдельной инструкции, значит, интерфейс очень плохой. "

Это аксиома. Следствие : все типовые конфигурации очень плохие :)
sergathome; zqzq; +2 Ответить
34. c1nil 22.02.18 12:22 Сейчас в теме
Может быть стоит начать с изучения документа "Система стандартов и методик разработки конфигураций для платформы 1С"? У меня нет подписки на ИТС, но получить его не составило большого труда.
37. logarifm 1047 22.02.18 12:49 Сейчас в теме
https://its.1c.ru/db/v8std
Тут все это прекрасно описано.
39. herfis 283 22.02.18 13:00 Сейчас в теме
С прописными истинами есть одна смешная проблема.
Либо ты уже их выстрадал сам и для тебя это банальности, не стоящие упоминания в приличном обществе, либо ты еще в начале пути и для тебя они - брюзжание пердунов, неправильно расставляющих приоритеты и талдычащих одну и ту же неважную фигню (тут хоть как-то работающий код написать бы).
fvadim; zarucheisky; user774630; +3 Ответить
40. Vovan1975 14 22.02.18 13:07 Сейчас в теме
(39) есть еще один момент - когда ты их применяешь на практике и вдруг выясняешь что стало еще хуже.
ipoloskov; +1 Ответить
43. nytlenc 22.02.18 14:10 Сейчас в теме
Блин ну зачем всякую ерундистику писать? Есть давно разработанная система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8. Ссылка дана была выше https://its.1c.ru/db/v8std
47. pbazeliuk 1700 22.02.18 15:25 Сейчас в теме
А вот эти ребята автоматизировали проверки по стандартам https://sonar.silverbulleters.org
Код и решения получаются более качественными.
49. zarucheisky 22.02.18 16:55 Сейчас в теме
52. nixel 794 22.02.18 18:10 Сейчас в теме
(49) угу. Пётр один из наших клиентов (надеюсь, что благодарных)
54. pbazeliuk 1700 22.02.18 20:50 Сейчас в теме
(52) когда не делал code review 2 месяца под ряд и решил посмотреть на качество, очень приятно удивился, что программисты хорошо так выросли.
55. pbazeliuk 1700 22.02.18 20:51 Сейчас в теме
56. ksnik 348 23.02.18 07:35 Сейчас в теме
(55) Вы проводите непрерывный анализ и измерение качества задачи размером 8 тысяч строк кода. Я создавая и поддерживая на едине с пользователями программы большего размера (к примеру розничный автозаказ товаров) не вижу смысла использования системы непрерывного анализа и измерения качества. В попыхах несколько раз делались и всплывали очень досадные ошибки (при желании по быстрому реализовать новую частную функцию и связанные с не предупреждением отказов отдельных компонентов системы). К примеру в резутьтате "блокировки" не записан и не проведен документ из цепочки автоматически выполняемых действий или не изменено значение константы. Данные узкие места, и например то, что один из регистров сведений тяжелый для чтения/записи, по опыту знаю только я, кто кроме меня может это обнаружить? Эффективно ли привлекать особых специалистов проверять не большую программу? Не возрастут ли затраты собственных программистов на мониторинг качества кода в ущерб функциональности? Как в Вашей системе непрерывного анализа и измерения качества реализована проверка конечного результата работы задачи при каждом варианте настройки тестируемой системы и проверка на отказоустойчивость?
57. pbazeliuk 1700 23.02.18 09:27 Сейчас в теме
(56) 8 тысяч это ядро, на то оно и открытое. В целом проект имеет плагинов еще на 20 тыс. строк кода.
Для плагинов есть тесты, которые хранятся в отдельном каталоге и на количество строк кода они не влияют.

(56)
К примеру в резутьтате "блокировки" не записан и не проведен документ из цепочки автоматически выполняемых действий или не изменено значение константы.

Не понимаю проблем с блокировками, если есть проблемы нужно повышать свой уровень знаний и четко понимать, что будет происходить в СУБД при том или ином действии. Например, в среднем у меня 1 deadlock за месяц на 200-300 сеансов онлайн в режиме 22/7/363. Необходимо собирать журналы и мониторить состояние системы, определить ключевые показатели которые важны для функционирования бизнеса.

(56)
Данные узкие места, и например то, что один из регистров сведений тяжелый для чтения/записи, по опыту знаю только я, кто кроме меня может это обнаружить?

Не понимаю, что значит тяжелый, если возникают проблемы с записью, параллельностью - есть рекомендации от фирмы 1С и курсы экспертов 1С.
Все что вы написали возникает от недостатка знаний. Инструментов есть множество бери и используй.

(56)
Эффективно ли привлекать особых специалистов проверять не большую программу?

Если возникают проблемы производительности - да. Если это автоматизированные проверки почему бы и нет?

(56)
Не возрастут ли затраты собственных программистов на мониторинг качества кода в ущерб функциональности?

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

(56)
Как в Вашей системе непрерывного анализа и измерения качества реализована проверка конечного результата работы задачи при каждом варианте настройки тестируемой системы и проверка на отказоустойчивость?

Конечный результат только тестирование (ручное, автоматическое, нагрузочное), постоянное измерение внутренних показателей работы системы и анализ данных в будущем.
Нанимать правильных программистов, которые знают и умеют это делать с помощью инструментов:
https://infostart.ru/public/569431/
https://infostart.ru/public/597500/
zeegin; Yashazz; nixel; acanta; +4 Ответить
50. tailer2 22.02.18 17:00 Сейчас в теме
Если Вы не можете описать простыми словами, как работает Ваш алгоритм, значит, Вы неправильно выполнили задачу, или недостаточно хорошо умеете повышать уровни абстракции.


это частный случай, в общем виде это так:

Если вы не можете объяснить что-то на пальцах добросовестному дураку, вы сами не понимаете этого.
60. acanta 67 23.02.18 11:03 Сейчас в теме
(50) класс.. умный в любом случае разберется, даже если вы сами этого не понимаете.
63. Nikola23 415 23.02.18 12:20 Сейчас в теме
1
Вы пишете код для человека, не для программы или компьютера. Делайте код понятным, чтобы человек, который будет разбираться в нём через полгода или год или два, мог легко это сделать

В целом с утверждением согласен. Программы для программистов? За 10ть лет следовало бы понять, что программы - для пользователей.

8

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



Не могу согласиться с утверждением. Возможно, это справедливо в системах на 10 пользователей, но в высоконагруженных системах дублирование ради повышения скорости выборки данных за счет упрощения запросов - дает ощутимые результаты. То, что поддерживать этого монстра и обеспечивать целостность данных - дело не легкое, можно не писать. В контексте моего сообщения, пишу о оптимизации работы, а не разработке или поддержке. Система же пишется для пользователя.

9
Если схожая задача возникает 3 раза, значит, она возникнет ещё 300 раз, и пора подумать о создании универсального механизма

Код необходимо сразу писать с расчетом на многократное использование.
69. genayo 23.02.18 18:50 Сейчас в теме
Какая система у вас? По описанию вроде не акселот, или всеже?
70. puzakov 25.02.18 18:26 Сейчас в теме
Если НакопленныеДанные.МожноСклеить = Истина Тогда

Вай-вай...
herfis; acanta; +2 Ответить
71. Dzenn 344 25.02.18 20:42 Сейчас в теме
(70) Смущает явное сравнение? Явные сравнения легче читаются. В типовых конфигурациях они сейчас используются намного чаще, чем раньше.
vaskomain; +1 Ответить
73. acanta 67 25.02.18 23:38 Сейчас в теме
(71)
Явные сравнения легче читаются.

Истина в том, что склеить накопленные данные нельзя. Даже если они читаются.
74. Dzenn 344 25.02.18 23:48 Сейчас в теме
(73)
Истина в том, что склеить накопленные данные нельзя. Даже если они читаются.
это ключ структуры
75. TODD22 18 26.02.18 07:12 Сейчас в теме
(71)
В типовых конфигурациях они сейчас используются намного чаще, чем раньше.

Например в Рознице 1000+ раз встречается явное сравнение в условии.

И есть ещё функции платформы у которых возвращаемый результат может быть как булево, так и ссылочное значение.
76. herfis 283 26.02.18 10:26 Сейчас в теме
(71)(75) Фигня какая-то. Если название переменной/свойства уже соответствует булеву, то явное сравнение с литералом только затрудняет чтение.
Вот сравните два предложения, только читайте не как код (а то я смотрю, у вас уже глаз замылился), а как произведение:
"если можно склеить тогда"
"если можно склеить равно истина тогда"
77. TODD22 18 26.02.18 10:34 Сейчас в теме
(76)Я никому вроде не советую писать явное сравнение и сам его не пишу. Я только написал что в типовых это встречается и часто.

Явное сравнение может быть тогда когда не известно возвращает функция результат в виде булево или она может возвращать что то отличное от булево.
Например функция "БезопасныйРежим()" и тд.
у вас уже глаз замылился

Вы слишком буквально понимаете правила.
80. herfis 283 26.02.18 10:40 Сейчас в теме
(77)
Явное сравнение может быть тогда когда не известно возвращает функция результат в виде булево или она может возвращать что то отличное от булево.

Так тогда и вариантов других нет :) Но в этом случае и давать переменной/свойству название, однозначно подразумевающее булево - в корне неверно.
То есть назвать функцию ЭтоБезопасныйРежим() и позволять ей возвращать что-то отличное от булево - грубая стилистическая ошибка.
А если функция ЭтоБезопасныйРежим() будет возвращать, как ей и положено, только булево, то стилистической ошибкой будет уже использовать ее явное сравнение с литералом.
Это мои личные правила, которые я понимаю да - буквально :)
Артано; sergathome; +2 Ответить
82. TODD22 18 26.02.18 10:44 Сейчас в теме
(80)
То есть назвать функцию ЭтоБезопасныйРежим() и позволять ей возвращать что-то отличное от булево - грубая стилистическая ошибка.

Однако с этими ошибками приходится работать.
Например функция платформы "БезопасныйРежим()"
90. herfis 283 26.02.18 11:03 Сейчас в теме
(82) Я не зря привел в пример название "ЭтоБезопасныйРежим" - это название не оставляет неоднозначности в части возвращаемого значения. Ответом может быть только да или нет. "БезопасныйРежим" такой однозначности не дает.
Но я соглашусь, что функция БезопасныйРежим() - пример плохого дизайна. Зачем ориентироваться на плохие примеры? :)
Ежу понятно, что если какая-то функция может возвращать не только булево, то остается либо явное сравнение, либо предварительная проверка типа.
92. TODD22 18 26.02.18 11:10 Сейчас в теме
(90)
Зачем ориентироваться на плохие примеры? :)

Так я на них не ориентируюсь. Но с этим приходится работать.
Ежу понятно, что если какая-то функция может возвращать не только булево, то остается либо явное сравнение, либо предварительная проверка типа.

Так об этом и речь. Проблема то в том что приходится работать с чужим кодом. И не всегда кто то другой взял и сделал правильно.
Я просто уже несколько раз так попадал.
93. herfis 283 26.02.18 11:16 Сейчас в теме
(92)
Так об этом и речь. Проблема то в том что приходится работать с чужим кодом. И не всегда кто то другой взял и сделал правильно.
Я просто уже несколько раз так попадал.

Очевидно, я просто неправильно понял ваш изначальный комментарий. Что вы мол, поддерживаете, а не возражаете. Перечитал и понял, что ошибся.
Оставьте свое сообщение

См. также

"Хочу универсально!" [Часть 1] 65

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования Разработка

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

02.09.2019    3849    SeiOkami    35       

Кодогенерация и метагенерация в 1С 24

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

В своем докладе на конференции INFOSTART EVENT 2018 EDUCATION Дмитрий Белозеров рассказал о разработке инструмента, позволяющего программно работать с метаданными 1С и писать скрипты для выполнения тех же действий, которые выполняет разработчик в конфигураторе –  с какими сложностями и нюансами пришлось столкнуться, и что получилось в итоге.

26.08.2019    3943    kirovsbis    28       

Иерархия без "В ИЕРАРХИИ" 113

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    4259    ildarovich    16       

EnterpriseData – часть 3. Загрузка данных, идентификация объектов 61

Статья Программист Нет файла v8 v8::УФ 1cv8.cf ОС Бесплатно (free) Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    3272    ids79    7       

Запрос SQL для нахождения самого большого простого числа меньше заданного 6

Статья Программист Нет файла Windows Бесплатно (free) Математика и алгоритмы

Данный запрос MS SQL демонстрирует некоторые возможности MS SQL Server, о которых часто неизвестно большинству программистов 1С. В тексте постараюсь объяснить интерес данного запроса (или скрипта).

16.08.2019    1183    alex_bitti    18       

Обработчики событий при записи объектов. Зачем и что за чем? 189

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    10168    4    AlbinaAAA    22       

Как проводятся документы в типовых конфигурациях от 1С 135

Статья Программист Нет файла v8::ОУ ERP2 УТ11 Россия УУ Windows Бесплатно (free) Математика и алгоритмы Практика программирования Разработка

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

24.07.2019    14777    skv_79    32       

Управление качеством кода 124

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Математика и алгоритмы Рефакторинг и качество кода

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    6849    Stepa86    23       

Что делает "В ИЕРАРХИИ" в запросе? 85

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    6542    YPermitin    29       

Создание отчетов с помощью СКД - основные понятия и элементы 190

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    17088    ids79    16       

Реализуем Стек, Очередь и Приоритетную очередь в 1С 50

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

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

24.06.2019    7067    RonX01    63       

Почему вообще работает мой запрос? или Ещё раз о планах запросов 45

Статья Программист Нет файла v8::Запросы Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Другие статьи на эту тему объясняют, что такое план выполнения запроса, но не рассказывают о том, как его получить. Эта заметка призвана заполнить этот пробел. Её цель - популяризировать общедоступные инструменты получения плана запроса среди разработчиков, которые ещё не начали их использовать.

10.06.2019    5487    DataReducer    12       

Вычисление 200 тысяч знаков числа pi 73

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    3581    Oleg_nsk    93       

Регистры накопления. Виртуальные таблицы. Часть №1: Обороты 82

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Описание работы платформы 1С:Предприятие 8.2 с виртуальной таблицей "Обороты" регистров накопления.

20.05.2019    9724    YPermitin    4       

Выдержки из книги Чистый код 24

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Недавно я прочитал книгу "Чистый код" Роберта Мартина (Robert Cecil Martin). В ней описываются принципы организации и форматирование исходного кода программы так, чтобы в дальнейшем было легко поддерживать такой код. Эта книга является библией для многих программистов, но вот в среде программистов 1С, к сожалению, не очень распространено чтение подобной фундаментальной литературы. Книга более 400 страниц и так много порой лениво читать, да и времени всегда не хватает. По этому я решил выделить в виде цитирования по разделам самые важные моменты. А также снабдил текст своими примерами кода.

16.05.2019    5532    FreeArcher    82       

Что такое алгоритм? 5

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Как ответить на этот вопрос и не попасть пальцем в небо.

25.02.2019    2874    mkalimulin    272       

Криптовалюты, а также иные взгляды на природу денег в терминах 1С 6

Статья no Нет файла Бесплатно (free) Математика и алгоритмы

Это отчасти полемическая статья. Я задумал написать ее как ответ на другую хорошую статью о криптовалютах. Хотелось поспорить с некоторыми утверждениями автора, а ещё больше с некоторыми комментариями. А чтобы текст был более понятным для местной аудитории, я решил использовать, где только возможно, терминологию и практику 1С.

28.01.2019    3560    mkalimulin    89       

Как писать код? Технологии древних цивилизаций, или все новое - это хорошо забытое старое 70

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Все современные технологии - это развитие и доведение до ума (или маразма) древних идей. За последнее время не придумали ничего нового - все, что мы видим, было придумано тысячи лет назад. Не является исключением и программирование, которое в сути своей является переводом с языка условностей технического задания или заявки пользователя в формализованный и абсолютно точный язык математической логики. А логику придумали (по крайней мере первыми опубликовались в ведущих научных журналах) еще древние греки.

23.01.2019    8568    starik-2005    43       

Многоязычное программирование: создание систем с использованием нескольких языков 17

Статья Программист Нет файла Россия Бесплатно (free) Математика и алгоритмы

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

09.01.2019    5547    kalyaka    33       

Размышления о хороших практиках, навеянные одной статьей 12

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Прочитал статью "Ректальное программирование: основы для практикующих 1С-программистов". Статья очень хорошая и своевременная. Но у меня возникло некоторое сомнение. А достаточно ли автор любит и понимает предмет, о котором пишет? Насколько богат его опыт ректального программирования и занимался ли он им вообще? Как человек обладающий многолетним опытом РП, я решил представить вам необходимые дополнения к статье.

21.12.2018    4392    mkalimulin    61       

Ректальное программирование: основы для практикующих 1С-программистов 293

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Одной из самых популярных и зарекомендовавших себя методологий программирования в 1С является так называемое ректальное программирование. Редкий проект внедрения и сопровождения учётных систем на платформе 1С обходится без его использования. Зачастую без знания данной методологии программистам даже бывает сложно найти работу в сфере 1С, потому что работодатели, особенно фирмы-франчайзи, в основном отдают предпочтение классическим, зарекомендовавшим себя методикам, а не новомодным заграничным веяниям.

19.12.2018    30454    for_sale    340       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 125

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    20671    ids79    40       

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 144

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы Практика программирования

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

23.08.2018    21016    Rain88    42       

Учебный курс. Повышение качества разработки. Ошибки программы 96

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы Рефакторинг и качество кода

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекции № 3,4,5. Эти лекции посвящены ошибкам программ, их классификации и способам исправления

10.07.2018    15707    Артано    90       

Що там у них в Java 19

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Развенчание мифа о тяжёлой жизни не 1С программистов на примере создания веб сервиса редактирования таблички с использованием framework spring в Java.

24.05.2018    9152    van_za    62       

Учебный курс. Повышение качества разработки. Вводная лекция, часть 2 49

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекция №2. Эта лекция посвящена абстракциям, их свойствами и практическому применению в рамках классических парадигм программирования.

24.05.2018    10644    Артано    36       

Учебный курс. Повышение качества разработки. Вводная лекция 116

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста.

10.05.2018    15518    Артано    51       

Творим Историю вместе 55

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Расширяем границы, выходим за рамки, ставим новые цели - все, как вы любите.

17.01.2018    14833    1c-intelligence    108       

Использование git при разработке на 1С 121

Статья Программист Нет файла Россия Бесплатно (free) Математика и алгоритмы

Продолжение цикла статей по основам CI. Данная статья расскажет о реализации возможности хранения кода продукта в системе управления версиями git и познакомит со специализированным инструментарием, предназначенным для решения этой и других смежных задач.

27.12.2017    25824    real_MaxA    57       

Об уровне абстракции и сложности системы 14

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

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

21.12.2017    9632    m-rv    15       

Двоичное дерево, двоичное дерево поиска, двоичная куча, B-дерево 34

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

В большинстве реляционных СУБД в качестве структуры данных для индексов (та или иная их реализация) используются именно деревья. И не просто деревья, а сбалансированные деревья поиска. В этой статье как раз о них.

24.11.2017    12351    Irwin    4       

Введение в CI для 1С 87

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

Значение роли тестирования при разработке ПО трудно переоценить, его применение позволяет повысить надёжность продукта и улучшить качество кода. Для продуктов для платформы 1С:Предприятие существует ряд инструментов для проведения тестирования, в том числе и от самого вендора. Но, также появились открытые инструменты, реализующие мировые практики проведения тестирования (проверки продукта), поддерживаемые сообществом. В этой статье описаны базовые принципы, которые необходимо понимать перед началом применения этих инструментов.

21.11.2017    18775    real_MaxA    22       

Как работает серверный вызов в 1С 456

Статья Программист Нет файла v8::УФ Бесплатно (free) Математика и алгоритмы

Клиент-серверная архитектура заложена в платформе изначально — со времен «1С:Предприятие 8.0». Однако при разработке на 8.0 и 8.1 о разделении кода на клиентскую и серверную часть можно было не заботиться, поскольку на клиенте (на толстом клиенте) был доступен тот же функционал, что и на сервере. Всё изменилось с выходом платформы «1С:Предприятие 8.2», когда появился тонкий клиент. Теперь на клиенте доступен один функционал, на сервере — другой. Клиент и сервер «общаются» между собой с помощью серверного вызова. Конечно, это усложнило процесс разработки, но с другой стороны – можно создавать более оптимальные (быстрые) решения, поскольку все сложные задачи выполняются на сервере.

18.11.2017    42739    pahich    75       

#Область ВНЕШНИЕ_ВЫЗОВЫ или MVC в 1С, библиотечность и упрощение интеграции кода 43

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы Универсальные функции

Зачастую почти любой модуль в 1С содержит от одного до несметного множества вызовов других модулей. Как с этим бороться, чтобы было проще куда-то что-то переносить - в этом посте.

12.10.2017    14429    for_sale    58       

Некоторые особенности разработки ММО-игр на платформе 1С:Предприятие 25

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Добрый день, уважаемые коллеги! На первый взгляд может показаться, что статья посвящена довольно необычным вещам, но поверьте мне, эти вещи всем нам вполне привычны, просто мы их обычно видим под другим углом зрения. Поговорим о том, что такое MMO. Многие из вас уже знают, что это такое, потому что существует такая игра, как World of Tanks, а те, кто в нее напрямую не играл, безусловно, о ней слышали. Игра World of Tanks является классическим MMO. MMO расшифровывается как Массивная Многопользовательская Online-игра. С технологической точки зрения это – нагрузки, нагрузки и еще раз нагрузки.

08.09.2017    9359    Inkasor    21       

Групповая разработка конфигураций в крупном холдинге 68

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

О чем мы сегодня поговорим? • О становлении и развитии групповой разработки конфигураций 1С в крупном холдинге с использованием хранилища конфигураций. • Обсудим практически все аспекты использования хранилища в командной разработке. • Я расскажу про те методы и идеи, которые мы пробовали использовать, какие используем до сих пор, от каких отказались и почему.

15.08.2017    17011    stas_ganiev    15       

Применение нейронных сетей и генетических алгоритмов в прикладных решениях на платформе 1С 170

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Сегодня мы поговорим про нейронные сети и генетические алгоритмы. • Для тех, кто не изучал их в университете, я сначала напомню теорию – что это такое, для чего это надо. • Мы рассмотрим, какие задачи с их помощью можно решать в 1С. • И в конце для тех, кто любит что-то делать руками (работать, программировать), мы разберем, как по факту собрать нейронную сеть или генетический алгоритм в 1С – что написать в коде и как это потом применить.

03.07.2017    31806    comol    63       

Автоматизация процесса 1С-разработки 91

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

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

07.06.2017    22502    ekaruk    9       

Пишем игру Минер. Обработка событий ActiveX в 1С 29

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Практика программирования Математика и алгоритмы

Пример демонстрирует обработку событий генерируемых компонентой ActiveX в 1С.

29.05.2017    12383    user621724_Dimav1979    11       

Как я доступ на kb.1c.ru получал 90

Статья Программист Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист Математика и алгоритмы

kb.1c - база знаний по технологическим вопросам крупных внедрений и не только. В этой базе знаний собираются методики и решения технологических проблем эксплуатации 1с, check-list'ы и инструкции по настройке ПО на серверах. Какие-то из размещенных статей дублируются на ИТС. Когда я искал пути получения доступа к нему я столкнулся с проблемой: мало кто доподлинно знает как получить доступ к нему, не работая у франчайзи 1с. Я опишу путь, который прошёл я, как физическое лицо.

01.05.2017    22012    ikekoval    33       

Маленькая хитрость СКД - выводим строки X раз 26

Статья Программист Нет файла v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Математика и алгоритмы

Здесь я расскажу, как вывести в отчет СКД произвольное количество одинаковых строк.

17.12.2016    15348    alexandersh    16       

"Распределение в запросе" или "избавляемся от перебора" 182

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Математика и алгоритмы Универсальные функции

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    27737    alexandersh    45       

Некоторые принципы оптимизации запросов 1С (+SQL) 115

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Разработка нового функционала часто связана с созданием новых таблиц в базе и написанием запросов. Собственно, размышляя о запросах, мы и формируем в голове содержание таблиц, индексы и количество таблиц и индексов. Заранее можно уверенно рассуждать о том, какая нужна архитектура, если задачу удалось понять. На этом этапе важно привлекать свой опыт. Что же делать, если его нет? Как рассуждать о запросах и формате хранения?

17.11.2016    8595    ture    40       

Использование git для доработки типовых конфигураций 1С 229

Статья Программист Нет файла v8 Беларусь Украина Россия Бесплатно (free) Математика и алгоритмы

Рассмотрены способы доработок типовой конфигурации 1C для различных изменений, и на картинках продемонстрирован подход к разработке с использованием git и частично с тестами.

11.10.2016    185841    pumbaE    31       

Оптимизация запросов 1С:Предприятие – от теории к практике 114

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

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

07.10.2016    30997    bpc222    20       

1Script – язык для автоматизации рутины в жизни специалиста по 1С 302

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Мы все здесь – автоматизаторы бизнеса. Мы занимаемся этим каждый день и делаем это хорошо. Но практика показывает, что специалисты по 1С очень редко, очень мало автоматизируют сами себя. Есть много мелких задач, которые мы, 1С-ники, привыкли делать руками, хотя большой класс из этих задач можно было бы переложить на работу машины. Именно об этом и хотелось бы сегодня поговорить.

14.09.2016    43992    Evil Beaver    76