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

29.04.20

Разработка - Работа с интерфейсом

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

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

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

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

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

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

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

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

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

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

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

Как так вышло? Текст универсален. С его помощью можно выразить почти все. В те времена, когда зарождалось программирование, видимо, никому и в голову не приходило, что программу можно выразить как-то иначе. Кроме того, с полной уверенностью можно сказать, что очень важную (если не определяющую целиком) роль сыграл линейный паттерн, предложенный одним из основоположников программирования Аланом Тьюрингом. Его знаменитая машина, машина Тьюринга, представляет собой нечто ползущее по ленте с бесконечным количеством ячеек и выполняющее шаг за шагом простейшие действия. Как математическая абстракция, машина Тьюринга важна. Мы используем ее, чтобы доказать, что наше вычислительное устройство действительно может вычислять. Но, наверно не стоило воплощать эту математическую абстракцию так буквально. Есть такой особый язык программирования, который воспроизводит машину Тьюринга, как она есть. Создатель языка дал ему вызывающее имя - 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С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61797    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54403    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    16698    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10738    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    9615    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3665    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12080    1    5    

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

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

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

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

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


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

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

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

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

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

Я вот не понимаю к чему вы это все время притягиваете. Большинство широко используемых языков программирования — тьюринг-полные.
Ваша же система не обладает полнотой Тьюринга на мой взгляд. Я не увидел примера выполнения любого вычисления. Только примитивный блочный конструктор.
Если вы назовете свою repeat группу как "Запрос" это совсем не означает что будет выполняться реальный запрос к базе данных с нужной выборкой.
Имхо без прописывания алгоритма кодом (примитивным текстом по вашему) это равносильно тому что вы на листочке нарисуете такую же блок-схему.
И да, так прямо втягиваете в беседу при этом "удобно" для себя игнорируете все что написано, что видно большую практику в полемике.
Но увы, на сегодня всё ))
25. mkalimulin 1148 23.04.20 23:52 Сейчас в теме
(24) Неверный у вас взгляд. Эта система тьюринг-полная и позволяет делать любые вычисления.
26. Redokov 81 24.04.20 10:18 Сейчас в теме
(25) вообще полноту по Тьюрингу можно доказать. Тогда и не придется голословно спорить: полная или не полная.
Сделаете? А вообще похоже на реинкарнацию RUP. Там тоже считалось, что вот мы схемки нарисуем связи опишем, потом бац и программа готова.
27. mkalimulin 1148 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 3033 24.04.20 10:56 Сейчас в теме
(17)
Вот когда будет расширение типа Яндексовской Алисы к 1С... Скажешь ей: "постройка мне запрос по изменению кадровых данных сотрудника за период". А она тебе хоп и готовый запрос. Или "нарисуйка мне справку по заработку за произвольный период", тебе сразу готовый макет.
Вот это будет переворот.
Узко смотрите. Все эти, перечисленные Вами, справки и запросы решают определенную задачу определенному пользователю. Когда роботы дойдут до описываемого Вами уровня, кейсы поменяются совершенно и подобные запросы просто некому будет формулировать, т.к. цель важнее средств, и искусственный интеллект таким окольным путем к цели не пойдет - на то его и изобретали.

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

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

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

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


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

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

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

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

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

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