Визионное программирование

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

Разработка - Практика программирования

Новый способ программирования и его практическая демонстрация.

Вы наверняка слышали о т.н. "визуальном программировании". Лично у меня этот термин всегда вызывал легкое недоумение. Я прекрасно знаю - что это такое. Но все же. Если новый способ предлагает нам программировать визуально, то как же мы программируем сейчас? На ощупь? Как по мне, так любое программирование визуально. Еще этот способ называют программированием без программирования. И это, наверное, еще хуже. То есть, вопрос ставится так:

можно ли заниматься программированием, не занимаясь программированием?

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

можно ли заниматься программированием, не занимаясь ерундой

Этот вопрос уже не абсурден. И на него есть ответ.

Все начинается с достаточно банальной мысли: 

программа - это не текст

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

Тут важно понимать, что использование кратковременной памяти - это далеко не высшая форма деятельности. Существуют исследования, которые показывают, что у шимпанзе кратковременная память развита существенно лучше, чем у человека. Это - действительно тупая работа. 

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

Как так вышло? Текст универсален. С его помощью можно выразить почти все. В те времена, когда зарождалось программирование, видимо, никому и в голову не приходило, что программу можно выразить как-то иначе. Кроме того, с полной уверенностью можно сказать, что очень важную (если не определяющую целиком) роль сыграл линейный паттерн, предложенный одним из основоположников программирования Аланом Тьюрингом. Его знаменитая машина, машина Тьюринга, представляет собой нечто ползущее по ленте с бесконечным количеством ячеек и выполняющее шаг за шагом простейшие действия. Как математическая абстракция, машина Тьюринга важна. Мы используем ее, чтобы доказать, что наше вычислительное устройство действительно может вычислять. Но, наверно не стоило воплощать эту математическую абстракцию так буквально. Есть такой особый язык программирования, который воспроизводит машину Тьюринга, как она есть. Создатель языка дал ему вызывающее имя - Brainfuck. Можно подумать, что все прочие языки программирования не Brainfuck. Как бы не так! Со времен Тьюринга мы используем в программировании линейный паттерн и поэтому можно сказать, что мы все пишем свои программы на чуть менее или чуть более удобных разновидностях Brainfuck. 

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

Новый способ программирования заключается в том, чтобы предоставить разработчику возможность записывать иерархические структуры каким-либо способом. Если вы достаточно долго работали с 1С и много общались с пользователями, тогда вы наверняка заметили: с каким энтузиазмом (подчас совершенно излишним, если не вредным) они занимаются созданием "папочек" и "папочек внутри папочек" в различных списках (товары, клиенты и т.п.) Это показывает нам, что такого рода работа естественна для человеческого мышления. Нам остается только предусмотреть возможность создавать группы двух типов: обычные и повторяющиеся по каким-либо правилам. А также дать возможность для любой группы указать простое или исключительное условие. И наш инструмент программирования готов. Можно показать, что машина Тьюринга воспроизводится этим инструментом. А значит - он обладает всеми теми возможностями, что и все прочие языки программирования.  

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

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

//infostart.ru/public/707283/

Результатом будет комплект файлов декларации, готовый для передачи в налоговый орган. Декларация по налогу на добавленную стоимость состоит из трех файлов: книга покупок, книга продаж и собственно декларация. Поэтому добавим три группы типа A(assemble)

 

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

 

Зайдем внутрь группы "Книга покупок" и создадим там группу "Файл", а внутри группы "Файл" группу "Документ".

 

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

Внутри группы "Документ" создадим группу типа R(repeat). R-группа - это повторяющаяся группа. В процессе того, что в традиционном программировании называется выполнением программы, а я называю трэкингом, группа типа A превращается в такую же одиночную группу. А группа типа R размножается и превращается во множество групп, в соответствии с тем, что задано в качестве итератора в свойстве "Источник".

 

 

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

Внутри группы "КнигаПокуп" создадим две группы типа A с одним и тем же именем: "КнПокСтр". Для каждой из этих групп зададим свойство "Условие". Группа с условием отрабатывает и появляется в трэкинге только при выполнение условия(условий). В рабочей области группа с условием выделяется бледным цветом.

 

Внутри группы "КнПокСтр" разместим четыре группы A: "КодВидОпер", "ДатаУчТов", "СвПрод", "Расчеты".

 

 

 

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

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

 

 

Внутри группы "СвПрод" разместим две группы A с условиями

Группа "Расчеты" имеет одну особенность. Этой группы нет в схеме налоговой декларации. Соответственно, ее не должно быть в файле результата. Но она нам нужна для вычисления величины, которую мы потом используем в группе "Декларация". Эта проблема решается добавлением специального свойства под названием "СКРЫТЬ".

Вторую группу "КнПокСтр" получим путем копирования первой и последующего внесения очевидных изменений. Чтобы не тратить зря ваше время, я не буду на них останавливаться.

То же самое можно сказать о группе "Книга продаж". Она также является почти точной копией группы "Книга покупок".

 

В группе "Декларация" создадим иерархию групп, соответствующую схеме.

 

И заполним их свойства также очевидным образом. Например, так:

 

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

Обратите внимание. Если вам сейчас кажется все простым и понятным, то это вовсе не потому, что я выбрал слишком простую задачу для демонстрации нового способа программирования. Мне доводилось делать декларацию по НДС на седьмой версии 1С.  И там это заняло около 1000 строк кода. А если вы возьмете реализацию этой же задачи в типовой конфигурации "Бухгалтерия предприятия", то там будут все 25 тысяч строк кода. И это еще без учета общих модулей.

Задача кажется простой, потому что новый способ программирования не создает сложностей на пустом месте. Это - не visual программирование. Это - vision программирование.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. chng 22.04.20 09:12 Сейчас в теме
>Задача кажется простой, потому что новый способ программирования не создает сложностей на пустом месте.

Люто плюсую, потому, что 90% современного программного кода решает именно задачу сложностей, созданных на пустом месте.
ipoloskov; +1 Ответить
2. mkalimulin 449 22.04.20 11:23 Сейчас в теме
3. FesenkoA 53 23.04.20 09:57 Сейчас в теме
>>Задача кажется простой, потому что новый способ программирования не создает сложностей на пустом месте.

Да по сравнению с большинством современных конфигураций что угодно не создает сложностей на ровном месте))))) Та же УТ2.3 (УТ 10) модуль расчета скидок правился мною за 2 часа, причем правился - это я добавил новый вид расчета скидок: по количеству товара в документе (там такого не было). В то время как поменять форму ввода скидок на более простую (менеджер не любит компьютеры) заняло в УТ3 (УТ 11) 3.5 ч..
4. mkalimulin 449 23.04.20 11:36 Сейчас в теме
(3) Есть открытый код, есть закрытый код, а есть 1С.
5. Brawler 480 23.04.20 19:24 Сейчас в теме
ИМХО это все при большой размере программы перерастет в такой же онанизм как в конфигурации конвертация данных, вроде все понятно как там делать, но когда растет количество правил конвертации данных, правил конвертации свойств, правил выгрузки данных..., пилишь алгоритмы там всякие и запросы, это все превращается в такую мешанину всего, что запаришься по миллиону кнопочек наживать чтобы найти те места что нужны, чтобы вспомнить как же оно там выполняется, чтобы где-то в другом месте натыкать других кнопочек и вписать немного кода. Как что на что влияет не особо понятно. Не зря у меня в отделе кроме меня в КД мало кто, что-то делает, у всех некоторый такой шок от такого программирования.

Когда невозможно читать программный код в классических текстовых файлах, то это адище, а не программирование, это конструирование да и то ИМХО пурга.
mrsmrv; papche; Dem1urg; VladC#; Fox-trot; ipoloskov; +6 Ответить
9. mkalimulin 449 23.04.20 20:04 Сейчас в теме
(5) Может перерастет, а может и не перерастет. Может будет "адище", а может и нет. Я вам конкретный пример привожу. Где с одной стороны "адище" в 25 тысяч строк кода. А с другой - все просто и понятно. Я думаю, что у моего инструмента и КД ничего общего. Если вы думаете, что это не так и ваш опыт с КД здесь применим, то попробуйте решить какую-нибудь задачу на ART.
И если будет "адище", то вы всем нам покажете и скажете: "вот - смотрите, как ужасно получилось". Я думаю, это было бы для всех полезней.
Впрочем, в любом случае спасибо за отзыв.
10. TODD22 18 23.04.20 20:26 Сейчас в теме
(9)
Где с одной стороны "адище" в 25 тысяч строк кода.

Это "адище" ещё реализует визуально все формы и машиночитаемые бланки, проверки и прочие сервисные возможности. Сможете?
Что для вас будет серьезным результатом?


РСВ ?
11. mkalimulin 449 23.04.20 20:28 Сейчас в теме
(10) Вот это по-делу. РСВ. Спасибо.
12. TODD22 18 23.04.20 20:29 Сейчас в теме
(11)С проверками, расшифровками и тд. Иначе какой смысл если её нельзя проверить, откорректировать и тд.
14. mkalimulin 449 23.04.20 20:32 Сейчас в теме
13. TODD22 18 23.04.20 20:30 Сейчас в теме
(11) Можете ещё 6 НДФЛ ту да же....
15. mkalimulin 449 23.04.20 20:33 Сейчас в теме
6. Pawlick 10 23.04.20 19:45 Сейчас в теме
Не понимаю для чего все это???

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

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

Если это использовать как конструктор каких либо отчетов, то ничего нового в этом нет, кроме пожалуй четырех квадратиков на белом фоне, символизирующих какие составляющие отчета.
Terve!R; papche; VladC#; AnderWonder; +4 Ответить
8. mkalimulin 449 23.04.20 19:59 Сейчас в теме
(6) Допустим, что декларация по НДС - это несерьезный результат. Что для вас будет серьезным результатом?
Полный комплект регламентированной отчетности - серьезный результат?
7. mkalimulin 449 23.04.20 19:55 Сейчас в теме
16. CheBurator 3453 23.04.20 22:24 Сейчас в теме
Фигня. Все равно там какие-то строчки надо писать. что-то чему-то присваивать.
Хочу нарисоватьквадартик, написать "Это сумма выручки за месяц" - и чтобы эта сумма САМА посчиталась, подсветилась зелененким, а я стрелочку пририсовал - в дкларацию или в отчет топу... вот это будет визуальное программирвоание. А сумму которая САМА - ну мы ее из квадартиков тоже нарисуем.. только окажется что быстрее написать
А = Б+С. чем рисовать три квадратика сложение и стрелку назанчения.
19. mkalimulin 449 23.04.20 23:25 Сейчас в теме
(16) Вот тут сумма сама считается )))

17. СергейКа 689 23.04.20 23:07 Сейчас в теме
То ли я морально не дорос, то ли закоснел в своем опыте. Только совсем не понял плюсов и для чего эта излишняя работа.
Да, я понимаю что визуально чаще всего воспринимается легче для понимания.
И да, визуализация алгоритма полезная вещь. Не даром все эти блок-схемы рисуются, составляются различные нотации документации.
Однако что именно здесь к чему - не въехал совсем.
Ну хорошо, продемострировали вы здесь составление структуры xml файла с помощью визуального конструктора. И что? Где здесь собственно программирование? Где выборка данных? Где заполнение и контрольные проверки? Где печатные формы?
Но ведь без начинки просто игрушка получается.
Помню лет 10 назад были здесь популярны различные конструкторы соствлениия xml с помощью визуализации деревом. Сам баловался преобразованием туда-обратно. Чем это лучше?
Сразу "новый инструмент программирования". Новое - это хорошо забытое старое.
Вот когда будет расширение типа Яндексовской Алисы к 1С... Скажешь ей: "постройка мне запрос по изменению кадровых данных сотрудника за период". А она тебе хоп и готовый запрос. Или "нарисуйка мне справку по заработку за произвольный период", тебе сразу готовый макет.
Вот это будет переворот.
А так, ну ни в чем не убедили.
IgorS; Terve!R; +2 Ответить
18. mkalimulin 449 23.04.20 23:19 Сейчас в теме
(17) Любая repeat группа - это и есть выборка данных. А инструмент в целом позволяет описать любой алгоритм. Описание алгоритмов - это ведь программирование, не так ли?
20. СергейКа 689 23.04.20 23:27 Сейчас в теме
(18) Не так. Вы описываете только часть процесса, причем не самым удобным способом.
Ну по сути, повторюсь что ничего нового. Вы делали сайты? Уж много лет как таким образом строятся различные страницы блочным конструктором. Правда потом все равно напильником нужно дорабатывать.
Или возьмите тот же Visual Studio. Или другие аналогичные IDE.
Уж простите, но описанное напоминает как у нас учительница первоклашек на БК обучала в конце 80-х. А как к IBM подступиться и что с ним делать - сама не понимала.
21. mkalimulin 449 23.04.20 23:28 Сейчас в теме
(20) Блочный конструктор обладает полнотой по Тьюрингу?
22. СергейКа 689 23.04.20 23:32 Сейчас в теме
(21) Это вы сейчас так ругнулись? ))
Сложность систем сейчас выросла на много по сравнению с тем временем, когда жил тот к кому вы аппелируете.
Такой подход можно было бы применить к ассеблеру, что собственно и используется на низкоуровнем программировании. Делали настройку фрезерного или токарного станка? Или хотя бы настройку 3-D принтера? Там применимо, спорить не буду.
23. mkalimulin 449 23.04.20 23:36 Сейчас в теме
(22) Энштейн тоже давно жил. Только e=mc2 никто ругательством не считает. Полнота по Тьюрингу - это вполне актуальный термин.
24. СергейКа 689 23.04.20 23:48 Сейчас в теме
(23)
Полнота по Тьюрингу

Я вот не понимаю к чему вы это все время притягиваете. Большинство широко используемых языков программирования — тьюринг-полные.
Ваша же система не обладает полнотой Тьюринга на мой взгляд. Я не увидел примера выполнения любого вычисления. Только примитивный блочный конструктор.
Если вы назовете свою repeat группу как "Запрос" это совсем не означает что будет выполняться реальный запрос к базе данных с нужной выборкой.
Имхо без прописывания алгоритма кодом (примитивным текстом по вашему) это равносильно тому что вы на листочке нарисуете такую же блок-схему.
И да, так прямо втягиваете в беседу при этом "удобно" для себя игнорируете все что написано, что видно большую практику в полемике.
Но увы, на сегодня всё ))
25. mkalimulin 449 23.04.20 23:52 Сейчас в теме
(24) Неверный у вас взгляд. Эта система тьюринг-полная и позволяет делать любые вычисления.
26. Redokov 81 24.04.20 10:18 Сейчас в теме
(25) вообще полноту по Тьюрингу можно доказать. Тогда и не придется голословно спорить: полная или не полная.
Сделаете? А вообще похоже на реинкарнацию RUP. Там тоже считалось, что вот мы схемки нарисуем связи опишем, потом бац и программа готова.
27. mkalimulin 449 24.04.20 10:28 Сейчас в теме
(26) Согласен. В следующей статье опубликую доказательство. А тех, кто будет говорить: "фу, что за скукотища!" буду отправлять к вам )))
RUP - это Rational Unified Process ?
38. Redokov 81 24.04.20 15:05 Сейчас в теме
(27) Договорились. Хотя, с другой стороны, если удастся оформить доказательство полноты по Тьюрингу так, чтобы таких разговоров не было - это будет высший пилотаж.
RUP - это Rational Unified Process ?

Да
28. starik-2005 2303 24.04.20 10:56 Сейчас в теме
(17)
Вот когда будет расширение типа Яндексовской Алисы к 1С... Скажешь ей: "постройка мне запрос по изменению кадровых данных сотрудника за период". А она тебе хоп и готовый запрос. Или "нарисуйка мне справку по заработку за произвольный период", тебе сразу готовый макет.
Вот это будет переворот.
Узко смотрите. Все эти, перечисленные Вами, справки и запросы решают определенную задачу определенному пользователю. Когда роботы дойдут до описываемого Вами уровня, кейсы поменяются совершенно и подобные запросы просто некому будет формулировать, т.к. цель важнее средств, и искусственный интеллект таким окольным путем к цели не пойдет - на то его и изобретали.

============

Вообще, визуальное программирование - я об этом уже высказывался - дело не новое, но оно больше для новичков. Все ведь знают КД2 - это тоже визуальное программирование, но если обмен чуть сложнее, чем 1:1 - сразу приходится писать кучу кода. Настроить таким образом обмен можно, но чайник в КД2 будет это делать очень долго - месяцами люди эти все правила пишут-переписывают, а дубли только плодятся и множатся, при том задача полного переноса данных из БП 3 в ЕРП 2.4, например, вызывает сложности, т.к. создатели решений даже в переносе ОС накосячили как минимум три раза: с лизингом (сворачивали выборку запроса по МОЛ, но не по подразделению, и документы тупо переписывали друг друга с одним МОЛ в разных подразделениях, а этого добра у организации чуть больше шарашки - маленькие ведь на ЕРП не переходят - масса; потом с арендой косяки - и это только самый первый счет! С 10-кой намудрили, даже кредиторка - и та через одно место сделана - все запросами, много запросов тупо по счетам, а в каком-нибудь производственном холдинге таких счетов - мама не горюй!) Приходится месяцами юным падаванам по этим граблям ходить. Вот реально не видел ни разу правил, которые бы не нужно было адаптировать, а на это часто садят стажеров, которые больше отвлекают старших разработчиков своим по этому поводу - и не безосновательно - нытьем (просто с такими мелкими клиентами давно не встречался).

Вообще, я не против всех этих визуализаторов, но они решают только простые задачи. Сложные задачи решаются в них с не меньшей (зачастую - куда большей) болью, чем при "классическом" подходе. Но эти инструменты должны позволить конструировать простые алгоритмы из библиотек очень быстро и просто с развитием в некий конвейер, который будет обрабатывать простой скрипт *визуальный) по созданию простого решения из базовых блоков. С другой стороны, это уже реализовано в виде функциональный опций в той же БП 3, и, как мы знаем, многие мелкие компании (которые сейчас массово отомрут) ведут свой учет в такой вот системе вообще без каких бы то ни было ее изменений - и их все устраивает.
29. СергейКа 689 24.04.20 11:00 Сейчас в теме
(28)
Узко смотрите. Все эти, перечисленные Вами, справки и запросы решают определенную задачу определенному пользователю.

Не поверите, но это было шуточное сравнение.


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

Я вчера и пытался донести это автору. Для простых конечных решений - да. Для обучения - тоже. Для реальной автоматизации уже очень сомнительно.
30. acanta 24.04.20 11:06 Сейчас в теме
(29) именно. Обучение на простых моделях симуляторах очень быстро превращается в искусственный отбор, где все что сложнее чем два плюс два просто не имеет права на существование. "Это мы не проходили, это нам не задавали".
А скука это следствие такого обучения.
Например, если выпускник начальной церковно-приходской школы понимал, что ему еще учиться учиться и учиться, то для выпускников вузов с двумя высшими образованиями это далеко не так очевидно.
33. mkalimulin 449 24.04.20 14:14 Сейчас в теме
(30) А я всегда думал наоборот. Что выпускник ЦПШ полагает, что он уже почти все знает. И только минимум два высших образования дают человеку надежное понимание, что он не знает ничего.
31. mkalimulin 449 24.04.20 14:11 Сейчас в теме
(28) Вы так уверенно говорите, что сложные задачи решаются с большей болью. На чем основана эта ваша уверенность? На опыте работы с КД? Как я уже говорил, КД не имеет ничего общего с ART.
В статье я делюсь с вами своим опытом. На примере одной, рядовой задачи я показываю, что "боли" существенно меньше. Вы считаете, что пример не показателен? Предложите свой. Мы вместе измерим количество "боли" и уже тогда будем делать выводы.
40. starik-2005 2303 24.04.20 16:25 Сейчас в теме
(31)
Предложите свой. Мы вместе измерим количество "боли" и уже тогда будем делать выводы.
Давайте реализуем с помощью Ваших блоков стандартную задачу рюкзака.
41. mkalimulin 449 24.04.20 16:52 Сейчас в теме
(40) Каким методом предлагаете решать?
42. starik-2005 2303 24.04.20 17:57 Сейчас в теме
(41) Первым попавшимся пойдет?
43. mkalimulin 449 24.04.20 18:09 Сейчас в теме
(42) Так полный перебор "безболезнен" во всех проявлениях. Потом есть точные и не точные алгоритмы.
Если вам все равно, тогда я возьму любой, кроме полного перебора.
46. starik-2005 2303 25.04.20 14:16 Сейчас в теме
(43) Вариант с динамическим программированием осилит Ваш метод?
47. mkalimulin 449 25.04.20 14:27 Сейчас в теме
(46) Не проверял. Предполагаю, что да.
32. vasvl123 104 24.04.20 14:14 Сейчас в теме
Автору респект за идею и реализацию. Только никто здесь этим пользоваться не будет. По той простой причине, что для задач, которые решает 1С, уже самим 1С'ом все необходимое давно реализовано. Можете посмотреть мою реализацию похожей на вашу идеи useyourmind.
34. mkalimulin 449 24.04.20 14:15 Сейчас в теме
(32) Спасибо. Сейчас посмотрим.
35. mkalimulin 449 24.04.20 14:20 Сейчас в теме
36. vasvl123 104 24.04.20 14:33 Сейчас в теме
37. profiprog1c 208 24.04.20 14:34 Сейчас в теме
С моей точки зрения, весть этот ART бесполезная трата времени и я объясню почему. Даже если брать только 1С, то в самом 1С настолько много всяких инструментов, которые к тому же периодически меняются, что осваивать всякие ARTы не хватит ни времени ни сил. Я уже молчу про то, что если параллельно заниматься php и прочими html (ну или c++ или другими языками), то времени на такие вещи как ART не хватит. Заинтересовать ART может только лишь условного студента или программиста 1С, который бездельничает на фикси, а таких хватает. Вот от безделия можно поковырять этот ART, хотя бездельнику никакой пользы от этого не будет. Если же у программиста 1С много практических задач, реальных проектов, то времени на этот ART ввиду его практической бесполезности, просто не хватит. Поэтому этот проект интересен только самому автору, а для других не имеет практической ценности.
39. mkalimulin 449 24.04.20 15:15 Сейчас в теме
(37) Проект неинтересен, потому что бесполезен или бесполезен, потому что неинтересен?
44. genayo 25.04.20 07:22 Сейчас в теме
Так, а где реализация блокчейна на ART?
45. mkalimulin 449 25.04.20 10:16 Сейчас в теме
(44) Сначала РСВ и рюкзак. Их вперед заказали )))
48. Vortigaunt 82 27.04.20 00:33 Сейчас в теме
То что описывает автор, возможно, и хорошая идея. Ведь не зря развитие инструментария разработки идет по пути облегчения написания кода. Читай: писать меньше букв, чтобы получить работающий код. Всякие шаблоны, интелисенс, библиотеки. Да то же ООП с классами помогает построить иерархию объектов.
Но вот лично меня напрягает двигать формочки на экране мышкой, выбирать и заполнять свойства. Еще со школы тошнило от задания начертить блок-схему алгоритма программы. Все-таки объективно лучший инструмент ввода информации в компьютер - это клавиатура. А лучший способ передать компьютеру команду - набрать строку текста.
Все существующие конструкторы в результате генерируют текстовый код. Созданное конструктором все равно потом читается в виде текста.
Возможно в будущем такой подход к созданию программ и победит, но это будет ой как нескоро.
49. mkalimulin 449 27.04.20 02:03 Сейчас в теме
(48) Чем текст лучше? Объективно.
52. Vortigaunt 82 28.04.20 10:43 Сейчас в теме
(49) В плане ввода: на мышке 3-4 кнопки + колесико, на клавиатуре овер 100 клавиш. На мышке используется 2 пальца, на клавиатуре все 10. Кому что удобнее и привычнее - это вечный холивар. Есть люди которым проще ввести команду, есть те, которые не могу запомнить команды, но отлично помнят где и на какой закладке лежит галочка.
Программисты в большинстве своем все-таки люди, которые изучают синтаксис языков программирования, запоминают тонны часто встречающихся методов. Для них органичнее вписать название, чем искать его в километровом списке.
Преимущества самой сущности текста против визуального представления алгоритма. Текст тупо проще отображать, сохранять и передавать. Когда из-за мелкой ошибки визуальный конструктор не работает, открываешь текстовое представление и глазами ищешь ошибку в тексте. Этот навык в программистах тоже очень быстро развивается. Как и недоверие к визуальным средствам разработки. Как бабульки в кассах, которые пересчитывают за калькулятором на счетах, или за экселем на калькуляторе.
Я вижу что два подхода идут навстречу. Визуальные инструменты помогают быстрее генерировать текст. А текстовый ввод помогает визуальным инструментам быстрее переходить к нужному пункту. Но я никогда не поверю, что программирование превратится в тыканье мышкой.
53. mkalimulin 449 28.04.20 11:32 Сейчас в теме
(52) Посмотрите внимательно на иллюстрации к статье. Вы увидите, что у групп есть свойства и значения свойств. И все это можно вводить с клавиатуры. Смысл не в том, чтобы отказаться от клавиатуры. А в том, чтобы отказаться от линейного восприятия. Текст линеен. И при этом призван отображать нелинейную структуру, каковой несомненно является всякая программа. Я предлагаю инструмент, который решает это противоречие.
Хотя, быть может, вы и сами подсознательно чувствуете, что близко то время, когда все вокруг будут "натыкивать" свои программы в смартфонах. А ваша олдскульная натура не сможет это принять ни в каком виде. Вот и пытаетесь прогнать эти видения прочь. Только нет смысла прогонять vision. Лучше принять и получить профит от использования.
Вот кстати, вы так срослись с текстом, что пишете, будто конструктор не откроется. С чего вдруг? Вы думаете, что конструктор не сможет открыть некий текст? А теперь представьте на минуточку, что нет никакого текста. Ну вообще. Конструктор открывает не текст, а структуру.
54. Vortigaunt 82 28.04.20 13:21 Сейчас в теме
(53) Вот кстати и посмотрел на иллюстрации. Там в свойствах много текста. Сам по себе текст или окошки не причиняют неудобств. А теперь сравните:
1. Накатать простыню текста на клавиатуре, которую компьютер выполнит.
2. Или вместо этого тык мышкой - набрал кусок текста, тык мышкой - набрал другой кусок текста и так не десять даже раз.
По секрету скажу, по многу раз в минуту бросать один инструмент ввода и переключаться на другой - раздражает и замедляет.
По поводу размера кода регламентированных отчетов - это не проблема конкретно текста, как средства отображения. Я думаю, если бы структура декларации со всеми необходимыми атрибутами корректно отражалась в XDTO модели, кода было бы в разы меньше.
А теперь представьте на минуточку, что нет никакого текста.

Извините, но не могу такое представить. Что у нас есть в 1с из визуальных средств разработки? Конструктор запроса, СКД, табличный документ. Все эти объекты так или иначе сериализуются. СКД точно сериализуется в xml. В нем же и хранится.
55. mkalimulin 449 28.04.20 13:35 Сейчас в теме
(54) Как вы накатаете простыню текста? Под диктовку? Или вы предварительно сериализуете программу в текст?
И еще вопрос. Вы наберете простыню от первого символа до последнего, ни разу не тыкнув мышкой? Или вы, все же, будете метаться по тексту вперед-назад как затвор в автомате Калашникова?
56. Vortigaunt 82 28.04.20 14:30 Сейчас в теме
(55) Метаться. Используя хоткеи, закладки. Есть шаблоны и прочие средства, позволяющие удобно писать текст. Например формирование блока и установка курсора сразу в нужное место. Зато на простыне текста есть только этот текст либо ссылка на другую простыню текста. Но не будет неожиданных сюрпризов, что где-то на десятой закладке установлена не та галочка. Все перед глазами.
А подумайте про средства версионирования. Как вы будете оценивать различия между разными версиями визионного кода? А как вы предлагаете мерджить? Вот перекидку подсвеченных строчек между двумя окнами я представляю. А представьте себе картинку аля "различия в табличных макетах"? Как это смерджить?
57. mkalimulin 449 28.04.20 14:49 Сейчас в теме
(56) Мерджить - это интересно. Спасибо за идею.
50. posvad 27.04.20 14:52 Сейчас в теме
Вот что значит плохое освоение информатики в школе. Это беда, когда нет понимания отличия алгоритма от программы, как конкретного выражения алгоритма...

А про языки визуального программирования... поищите в интернете Scratch, HiAsm, Erwin/BpWin...
51. mkalimulin 449 27.04.20 15:01 Сейчас в теме
(50) Как интересно! Расскажите мне - что такое алгоритм? И зачем нам его отличать от программы в данном контексте?
Насчет visual я в самом начале статьи написал. Scratch нам не указ. Его разработчики так и не смогли уйти от линейной парадигмы. Hiasm ничем не лучше. Текст или схема. Какая, в сущности, разница? И там и там линейное восприятие.
58. trustasia 13 30.04.20 09:12 Сейчас в теме
С момента первой публикации об ART ждал такой подробной реализации практического применения. Думаю, целесообразно применять при обучении 1С студентов.
59. mkalimulin 449 30.04.20 10:02 Сейчас в теме
(58) Спасибо! Думаю, что публикации точно в таком же духе продолжаться. Меня тут, на форуме, подначивают. Говорят, НДС - это просто, а вот РСВ...
60. trustasia 13 30.04.20 10:08 Сейчас в теме
(59) Конечно, подначивают на сложность задач...
А я подначиваю на количество обучающих примеров.
Сам начинал с бухгалтерского уровня, когда было уже понимание целей и вариантов их достижения, но
Убивали буковки и закорючки, как щас помню )))
В общем, сделаете 1С решения понятными бухгалтерам и финансистам визуальными методами - они будут благодарны.
Замахивайтесь не бюджетирование уж )
61. AnderWonder 24 19.06.20 13:24 Сейчас в теме
62. mkalimulin 449 19.06.20 13:32 Сейчас в теме
(61) То, что земля круглая и вращается вокруг солнца тоже ересь.
63. AnderWonder 24 19.06.20 13:35 Сейчас в теме
(62) расскажите это Илону Маску
64. mkalimulin 449 19.06.20 13:36 Сейчас в теме
(63) Лучше вы расскажите - что вам непонятно в концепции.
65. AnderWonder 24 19.06.20 13:42 Сейчас в теме
(64) для начала, а где здесь вообще концепция?
66. mkalimulin 449 19.06.20 13:46 Сейчас в теме
(65) Вместо текста используем иерархию.
67. AnderWonder 24 19.06.20 13:58 Сейчас в теме
68. mkalimulin 449 19.06.20 14:01 Сейчас в теме
(67) Элементов двух типов, простого и повторяющегося.
69. AnderWonder 24 19.06.20 15:10 Сейчас в теме
(68) эти элементы они вообще что? зачем нужна их иерархия?
70. mkalimulin 449 19.06.20 15:13 Сейчас в теме
(69) чтобы писать программы
71. AnderWonder 24 19.06.20 15:19 Сейчас в теме
(70) каким образом этими неведомыми элементами писать программы?
72. mkalimulin 449 19.06.20 15:26 Сейчас в теме
(71) Размещая один внутри другого.
73. AnderWonder 24 19.06.20 15:32 Сейчас в теме
(72) вы имеете ввиду, что эти элементы это блоки кода что-ли?
74. mkalimulin 449 19.06.20 15:39 Сейчас в теме
(73) Элементы - это нечто, имеющее свойства. Не более того.
75. AnderWonder 24 19.06.20 15:42 Сейчас в теме
И как это "нечто" может, например, вычислить факториал?
76. mkalimulin 449 19.06.20 15:46 Сейчас в теме
(75) В статье дается пример того, как это "нечто" формирует декларацию по НДС. Это, согласитесь, гораздо интереснее, чем факториал. В этой ветке ранее я обещал опубликовать реализацию машины Тьюринга и решение задачи о рюкзаке. Так что - следите за новостями.
77. AnderWonder 24 19.06.20 15:52 Сейчас в теме
(76) нет, не интереснее. Во-первых абсолютно не понятно, каким образом оно это делает. Во-вторых, кроме декларации НДС это "нечто" умеет ещё что-то делать? Если да, то покажите на простой задаче вычисления факторила, с вводом данных от пользователя и выводом результат на экран.
79. mkalimulin 449 19.06.20 15:54 Сейчас в теме
(77) Оно умеет делать все. Так же, как любой ЯП.
78. mkalimulin 449 19.06.20 15:52 Сейчас в теме
(75) А факториал - это всего лишь два элемента рядом. Один простой, другой повторяющийся. Совсем ничего интересного.
80. AnderWonder 24 19.06.20 18:43 Сейчас в теме
Короче, по сути дела - это не что иное, как обычный ЯП, только с графическим представлением блоков кода в виде иерархической структуры, вычурной семантикой и неописанным синтаксисом. Размалеваный детский велосипед с квадратными колесиками.
81. mkalimulin 449 19.06.20 23:43 Сейчас в теме
(80) Обычные ЯП используют текст.
82. AnderWonder 24 20.06.20 14:32 Сейчас в теме
83. mkalimulin 449 20.06.20 17:39 Сейчас в теме
(82) Не точно так же. В традиционном ЯП вы вынуждены прибегать к операциям сериализации и структуризации. На что уходит 90% усилий.
84. vadim1011985 85 21.06.20 17:50 Сейчас в теме
(83) а в вашей что не приходится прибегать к этому - опишите с помощью вашей art распознованием лиц на фото.

Я ещё могу понять если бы вы представили вашу систему как что-то типа макроса , упрощения выполнения действий. Но как ЯП - уж увольте . Вы просто предлагаете конструктор не более .
С удовольствием посмотрю как вы сформируете декларацию НДС на пустой конфигурации
85. mkalimulin 449 21.06.20 19:54 Сейчас в теме
(84) В art к этому прибегать нет нужды. Вы записываете программу прямо в том виде, в каком придумали.
86. vadim1011985 85 21.06.20 20:49 Сейчас в теме
(85) Что за бред , всегда есть процесс сериализации и структуризации - как вы это называете - неважно в какой вид вы приводите свою мысль - текст или блок-схемой . Вам уже предлагали сделать РСВ - но вы ее не сделаете, пока не откроете файл РСВ не посмотрите его структуру (или найдете описание структуры) и не повторите эту структуру с помощью Ваших блоков A и R
87. mkalimulin 449 21.06.20 22:26 Сейчас в теме
(86) Ничего подобного! Вы придумали программу. Программа - это структура. В обычном ЯП вам надо эту структуру превратить в текст. В ART этого делать не надо вы записываете структуру, как есть. В виде структуры же.
И, кстати, блок-схема - не структура, блок-схема - тот же текст, потому что она линейна.
Насчет РСВ не понял ваше возражение. Есть структура РСВ. Я беру и записываю ее как есть, так же как я сделал это с декларацией по НДС. В чем вопрос?
88. vadim1011985 85 22.06.20 01:17 Сейчас в теме
(87) программа является результатом реализации вашей идеи. В голове у вас не программа а общая идея - например идея сформировать структуру файла НДС . Далее вы «переносите» эту идею в какую-то форму текстовую , блок-схему или в другую -т.е. вашими словами сериализуюте вашу идею в выбранный вами вариант - какая разница текст это будет или что-то другое. А вы просто как всегда пытаетесь подменить одно понятие другим. Про РСВ - не зная структуру файла вы не напишите в вашей ART его заполнение - согласны ? А зная структуры вы сериализуете ее текстовое представление в структуру ваших блоков

Но вы утверждаете что вы избавились от этого.
90. mkalimulin 449 22.06.20 02:32 Сейчас в теме
(88) Конечно избавился. Мне не нужно преобразовывать структуру в текст.
Просто поймите наконец что сериализация - это преобразование структуры в текст. И ни что иное.
Если у вас есть переход структура >>>текст, у вас есть сериализация. Если у вас структура>>>структура, тогда у вас нет сериализации. Все просто.
Обратное преобразование текст>>>структура называется структуризация. В традиционном программировании эти две операции неразрывно связаны. Чтобы написать программу, надо применить сериализацию. Чтобы понять программу, надо применить структуризацию. А так как процесс разработки - это постоянно сменяющие друг-друга написание и понимание написанного, то эти две операции - это то, чем программист занят львиную долю своего времени.
В случае с РСВ я никакими подобными преобразованиями не занимаюсь. У меня на входе структура и на выходе структура.
93. vadim1011985 85 22.06.20 08:56 Сейчас в теме
(90) Вот есть задача , загрузка данных из файла excel . И какая в вашей голове рождаешься структура , которую вы переносите с помощью вашей ART?
95. mkalimulin 449 22.06.20 11:39 Сейчас в теме
(93) В вашей голове рождается решение этой задачи. Я утверждаю, что это решение является структурой. Поэтому, если избавиться от необходимости переводить эту структуру в текст, тогда можно будет сэкономить массу усилий.
96. vadim1011985 85 22.06.20 11:50 Сейчас в теме
(95) Опишите какая это структура -? Лично у меня в голове рождается линейный порядок действий
98. mkalimulin 449 22.06.20 12:49 Сейчас в теме
(96) Линейный это какой?
Взять первую строчку, проверить а не конец ли, взять вторую строчку, проверить а не конец ли, взять третью строчку...
Такой что-ли?
100. vadim1011985 85 22.06.20 12:57 Сейчас в теме
(98) Нет ,
1) Прочитать Файл
2) Загрузить данные в ТЧ на форме
3) Создать (сопоставить) нужные элементы
4) Создать документ
101. mkalimulin 449 22.06.20 12:58 Сейчас в теме
(100) А внутри этих пунктов ничего нет?
102. vadim1011985 85 22.06.20 13:17 Сейчас в теме
(101) зачем усложнять , я вашу мысль понял . Я понимаю что мне нужно делать зачем дробить на этапы ? Я выделяю общие значащие этапы и не дроблю на мелкие действия . Возможно выделенный этап тоже разобью на 2 -3 в зависимости от сложности , но в первую очередь у меня всегда укреплённые действия - что я должен сделать что бы получить результат - вы же ставите вопрос “Как я должен сделать что бы получить результат» согласитесь это немного разные вопросы
103. mkalimulin 449 22.06.20 13:40 Сейчас в теме
(102) То, что вы мыслите укрупненно, как раз и означает, что вы мыслите структурно.
104. vadim1011985 85 22.06.20 13:42 Сейчас в теме
(103) ну так зачем разбивать на мелкие действия ?
105. mkalimulin 449 22.06.20 13:50 Сейчас в теме
(104) Не описав мелких действий, вы задачу не решите.
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    79574    Serginio    113    

Полезные примеры СКД, ч.1

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

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021    6155    Neti    18    

Обзор полезных методов БСП 3.1.4

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

25.03.2021    16814    rayastar    47    

Повышение качества разработки. Статья 4. Почему код становится плохим, и как с этим бороться

Практика программирования Методология управления разработкой Бесплатно (free)

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Статья 4. Эта статья посвящена причинам возникновения проблем с качеством кода и методикам их преодоления.

22.03.2021    962    Артано    5    

Звуковое управление в 1С 8.3 Промо

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

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    3202    velemir    31    

Telegram бот на PHP

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

Сделаем простого Telegram бота на PHP.

01.03.2021    3665    John_d    8    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

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

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    5440    comol    31    

«Варп-двигатель» для «среза последних»

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

Решение, позволяющее получить данные, аналогичные "срезу последних" на два порядка быстрее.

10.08.2020    3453    hobi    47    

Использование программных перечислений, ч.1: строковые константы Промо

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

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    39075    unichkin    74    

Не спеша, эффективно и правильно – путь разработки. Часть 3. Практика

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

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

29.06.2020    11508    WildHare    33    

Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория

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

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

22.06.2020    11817    WildHare    23    

Не спеша, эффективно и правильно – путь разработки. Часть 1. Парадигма

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

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

15.06.2020    17969    WildHare    34    

Вспомогательные инструкции в коде 1С Промо

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

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    32924    tormozit    105    

JSON в запросах DaJet QL

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

Практические примеры работы с JSON непосредственно в языке запросов. Перенос курсов валют между УТ и БП. Требуется SQL Server 2016 и выше.

24.04.2020    4224    zhichkin    6    

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

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

Продолжаю (и заканчиваю) тему с автоматическим решением инцидентов. Перейдем от теории к практике.

25.02.2020    4651    Repich    9    

Использование машинного обучения для решения инцидентов

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

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

18.02.2020    7467    Repich    17    

Оформление и рефакторинг сложных логических выражений Промо

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

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

20.09.2012    79998    tormozit    131    

Программная работа с настройками СКД

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

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

27.01.2020    45792    ids79    26    

[СКД] Программное создание схемы компоновки данных

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

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    33748    John_d    22    

Часовой на страже логов

Практика программирования Инструментарий разработчика Бесплатно (free)

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    8334    Scorpion4eg    8    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    51004    tormozit    49    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    26264    kuzyara    38    

Полезные процедуры и функции для программиста

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

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

07.10.2019    34698    HostHost    41    

Таблица значений. Нюансы

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

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    43801    Yashazz    50    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

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

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    47886    tormozit    74    

СКД. Отчеты с картинками

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

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    27081    YPermitin    42    

СКД не только для отчетов

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

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

18.09.2019    20728    YPermitin    36    

Оповещения боту из 1С за 31 минуту

Практика программирования Интеграция v8::УФ 1cv8.cf Бесплатно (free)

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    18710    feva    42    

Развитие 1С программиста Промо

Практика программирования Личная эффективность Бесплатно (free)

Делюсь своим опытом и видением развития 1С программиста.

17.10.2018    23304    pashamak    64    

[Шпаргалка] Программное создание элементов формы

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

Программное создание практически всех популярных элементов формы.

06.09.2019    75835    rpgshnik    70    

Агрегатные функции СКД, о которых мало кто знает

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

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    62949    ids79    55    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    36135    YPermitin    25    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16734    m-rv    3    

Три костыля. Сказ про фокусы в коде

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

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    27808    YPermitin    81    

Приватный блокчейн и 1С популярно

Практика программирования Блокчейн Бесплатно (free)

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

02.09.2019    6621    mkalimulin    140    

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

Практика программирования Инструментарий разработчика Бесплатно (free)

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

26.08.2019    9367    kirovsbis    28    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    21358    m-rv    17    

Отслеживание выполнения фонового задания

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

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

17.08.2019    38586    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

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

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    118951    ids79    69    

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    48352    avalakh    26    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    33373    m-rv    22    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

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

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    84329    ids79    14    

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

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

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

24.07.2019    32006    skv_79    35    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    42053    ids79    27    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

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

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

05.12.2017    29132    itriot11    34    

Интеграция сценарного тестирования в процесс разработки

Практика программирования Инструментарий разработчика Бесплатно (free)

Разработчик системы «Тестер» Дмитрий Решитко в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION показывает, что процесс тестирования можно очень плотно интегрировать в процесс разработки, что внедрение тестирования – это возможность развития программиста как такового, позволяющая ему упорядочивать ход мыслей и оставаться «в фокусе». Навыки построения процесса кодирования на стыке с тестированием сокращают время на концентрацию, освобождают от страха перед изменениями и улучшают память разработчика.

08.07.2019    9782    grumagargler    7    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    20765    SeiOkami    50    

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

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

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

25.06.2019    64452    ids79    26    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    28022    dmurk    147    

Регистры накопления. Структура хранения в базе данных

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

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    53131    YPermitin    30