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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//tf21.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 417 22.04.20 11:23 Сейчас в теме
3. FesenkoA 45 23.04.20 09:57 Сейчас в теме
>>Задача кажется простой, потому что новый способ программирования не создает сложностей на пустом месте.

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

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

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


РСВ ?
11. mkalimulin 417 23.04.20 20:28 Сейчас в теме
(10) Вот это по-делу. РСВ. Спасибо.
12. TODD22 19 23.04.20 20:29 Сейчас в теме
(11)С проверками, расшифровками и тд. Иначе какой смысл если её нельзя проверить, откорректировать и тд.
14. mkalimulin 417 23.04.20 20:32 Сейчас в теме
13. TODD22 19 23.04.20 20:30 Сейчас в теме
(11) Можете ещё 6 НДФЛ ту да же....
15. mkalimulin 417 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 417 23.04.20 19:59 Сейчас в теме
(6) Допустим, что декларация по НДС - это несерьезный результат. Что для вас будет серьезным результатом?
Полный комплект регламентированной отчетности - серьезный результат?
7. mkalimulin 417 23.04.20 19:55 Сейчас в теме
16. CheBurator 3421 23.04.20 22:24 Сейчас в теме
Фигня. Все равно там какие-то строчки надо писать. что-то чему-то присваивать.
Хочу нарисоватьквадартик, написать "Это сумма выручки за месяц" - и чтобы эта сумма САМА посчиталась, подсветилась зелененким, а я стрелочку пририсовал - в дкларацию или в отчет топу... вот это будет визуальное программирвоание. А сумму которая САМА - ну мы ее из квадартиков тоже нарисуем.. только окажется что быстрее написать
А = Б+С. чем рисовать три квадратика сложение и стрелку назанчения.
19. mkalimulin 417 23.04.20 23:25 Сейчас в теме
(16) Вот тут сумма сама считается )))

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

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

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

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

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

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

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


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

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

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

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

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

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

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

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

Пакет из 3-х курсов по 1С-программированию. Основная цель - сформировать у слушателей практические навыки, связанные с реализацией задач обмена для прикладных решений, работающих на платформе “1С:Предприятие”, а также с разработкой прикладных решений, предназначенных для автоматизации расчета заработной платы и задач бухгалтерского учета.

22.04.2020    4385    23    Infostart    2    

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

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

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

29.06.2020    2899    0    WildHare    20    

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

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

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

22.06.2020    5489    0    WildHare    22    

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

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

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

15.06.2020    8709    0    WildHare    34    

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

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

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

10.12.2016    35278    0    unichkin    45    

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

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

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

24.04.2020    3260    0    zhichkin    6    

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

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

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

25.02.2020    3676    0    Repich    9    

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

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

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

18.02.2020    6059    0    Repich    17    

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

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

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

15.10.2018    27671    0    tormozit    100    

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

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

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

13.01.2020    5608    0    Scorpion4eg    6    

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

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

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

02.09.2019    5500    0    mkalimulin    140    

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

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

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

26.08.2019    8300    0    kirovsbis    28    

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

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

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

20.09.2012    75186    0    tormozit    129    

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

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

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

08.07.2019    8621    0    grumagargler    7    

Управляй качеством кода 1С с помощью SonarQube

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

Управляй техническом долгом проектов 1С с помощью SonarQube. В статье рассматривается пример применения SonarQube при разработке.

07.07.2019    35208    0    olegtymko    230    

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

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

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

25.04.2019    15256    0    m-rv    2    

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

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

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

11.07.2007    46076    0    tormozit    38    

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

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

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

16.04.2019    18925    0    m-rv    17    

О времени и 1С

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

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

01.04.2019    30890    0    YPermitin    60    

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

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

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

10.09.2017    42067    0    tormozit    74    

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф")

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

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф"). Данная статья будет полезна интеграторам, программистам, тем кто работает (интегрирует, разрабатывает) различное ТО либо железки. Версия и релиз технологической платформы не имеет значения.

17.03.2019    6132    0    dmarenin    1    

Быстрее чем INSERT! BULK-операции и примеры использования

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

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

09.03.2019    21462    0    YPermitin    40    

Как писать понятные коммиты

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

Как писать сообщения коммитов так, чтобы потом не было мучительно больно.

06.03.2019    11960    0    Scorpion4eg    35    

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

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

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

17.10.2018    18876    0    pashamak    62    

Подготовка ребёнка к ЕГЭ по информатике. Часть шестнадцатая

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

Поиск выигрышной стратегии, завершающая статья.

22.02.2019    5330    0    vasilev2015    0    

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

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

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

01.06.2018    28612    0    m-rv    21    

Подготовка ребёнка к ЕГЭ по информатике. Часть тринадцатая

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

Исправление ошибок в программе, часть вторая.

20.02.2019    5365    0    vasilev2015    3    

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

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

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

05.12.2017    26661    0    itriot11    34    

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

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

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

27.01.2016    73090    0    Serginio    108    

Подготовка ребёнка к ЕГЭ по информатике. Часть восьмая

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

Шифрование и дешифрование информации. Закон Фано

05.02.2019    5329    0    vasilev2015    1    

Расширяем свой багаж

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

Алгоритм решения возможной нетиповой задачи на собеседовании.

29.01.2019    6069    0    scientes    15    

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

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

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

10.11.2018    32076    0    ids79    40    

Подготовка ребёнка* к ЕГЭ по информатике. Часть пятая

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

Маршрутизация. Протокол IPv4 для ЕГЭ.

27.01.2019    5563    0    vasilev2015    5    

Подготовка ребёнка* к ЕГЭ по информатике. Часть четвертая

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

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

25.01.2019    5783    0    vasilev2015    0    

Подготовка ребенка* к ЕГЭ по информатике. Часть третья

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

Алгоритмы рекурсии, логические задачи. Подготовка к ЕГЭ.

22.01.2019    7220    0    vasilev2015    0    

Разработка и сценарное тестирование с Vanessa-ADD. Установка инструментов. Запись действий пользователя и выполнение сценариев

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

Вторая часть цикла публикаций, посвященных Vanessa-ADD и автоматизации тестирования.

21.01.2019    30089    0    Vladimir Litvinenko    96    

Подготовка ребенка* к ЕГЭ по информатике. Часть вторая

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

Примеры на Паскале. Если сам родитель* - поддержи ! Если сам водила - посигналь !

19.01.2019    5608    0    vasilev2015    0    

Подготовка к ЕГЭ сына - школьника (по информатике)

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

Примеры на Паскале. Если сам отец - поддержи ! Если сам водила - посигналь !

17.01.2019    6309    0    vasilev2015    50    

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

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

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

18.12.2018    6747    0    milkers    19    

ART - экспериментальный инструмент программирования

Практика программирования v8 v8::УФ Абонемент ($m)

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

1 стартмани

07.12.2018    11368    12    mkalimulin    105