Andreev Sergey

833
Рейтинг

Sergey Andreev
starik-2005



  •   Регистрация: 20.12.2014 (2 года назад)

  •   Был(а) на сайте: вчера в 20:13


Группы

Профессиональный разработчик

Рейтинг 833

Публикации

Как вывести результат запроса в таблицу на управляемую форму, ведь здесь нет метода "СоздатьКолонки()"? Как добавить поле ввода в табличную часть документа, если нет желания менять документ? Разбираемся...


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


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


Не знаю, все ли внешние источники, изображенные на картинке, можно использовать в 1С, но многие из них точно можно прикрутить к 1С, в том числе и установленном на сервере под управлением замечательной свободной ОС LINUX.


Как показала практика, о веб-сервисах знает почти каждый программист, но о том, как их готовить, - весьма ограниченный круг. Давайте интереса ради замутим сервис и дернем его с помощью простого подручного средства - "Бумеранг"!


Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) - не зависит.


Решил реализовать иерархию в пакете XDTO и выгрузить ее рекурсивно. Задача оказалась нетривиальной, хотя и весьма простой. Изысканиями решил поделиться с народом, чтобы не пропадало народное добро.


Честно - не нашел нигде описания того, как пропатчить KDE для FreeBSD, поэтому решил ликвидировать данную несправедливость. Ниже по тексту я расскажу не только про то, как собрать Postgres, но и как использовать флаги оптимизации для вашего процессора, чтобы все работало максимально быстро. Ну и немного остановлюсь на конфигурировании и администрировании.


В прошлом веке появилось много теорий управления человеческими ресурсами. Хочется рассмотреть три из них и некоторым образом переплести их с общим образовательным кризисом последних лет.


О веб-сервисах, апачах и *nix'ах. - установим на новенький убунту старенький апач с php. - дернем сервис из php-скрипта. - создадим приложение, позволяющее дергать произвольный сервис с произвольными данными. - ну и что там получится по пути в лес...


Комментарии

ВКСканер ШК режим клавиатура#9 24.02.17 23:39
В режиме "клавиатура" драйвера железные вообще не нужны - все обрабатывает софтовый драйвер, перехватывающий клавиатурный ввод. На мой взгляд через клавиатуру подключать - это не совсем правильно, лучше через USB-serial, а там уже стандартно на отдельный COM-порт.
DevОптимизация кода#21 24.02.17 23:34
(20) забыли ВТ проиндексировать. Есть мнение, что на большой ВТ это может помочь. А так код конечно страшный. Все эти даты 10 и 60 можно по-другому получить, например через "НачалоМесяца(Дата)+24*60*60*10" - 10-е число месяца.
ОбменОтследить изменение документов и оповещение через HTTP#3 24.02.17 23:03
(1) не факт. Покопался - не смог открыть в расширении модуль документа. Подписку на событие можно вроде как перенести в расширение, но изменить ее у меня не получилось.

В принципе, чтобы не снимать с поддержки все, можно добавить подписку на события при проведении и записи нужных объектов, а в подписке писать данные в какое-нибудь очень быстрое хранилище (например, в REDIS), чтобы не тормозить проведение документа, а уже оттуда периодически читать данные об измененных документах и передавать в сторонние системы каким-нить PHP-скриптом. В тот же REDIS можно быстро писать через redis-cli --pipe <1.txt, где в 1.txt скрипт типа RPUSH key:doctype GUID\r\n, где RPUSH - вставка в стек, key:doctype - ключ и тип документа (например, key:rtu), GUID - гуид документа. На стороне PHP можно через while(!($s = $redis->lpop("key:doctype"))) sendtoservice($s); оповещать внешний сервис.

В общем все достаточно просто можно запилить и работать будет быстро.
DevОшибка формата потока#24 24.02.17 20:37
http://www.gilev.ru/stream/ - это для общего развития. Ответов там можно сказать нет, но помогает наступить на все грабли разом, чтобы уж наверняка опыт приобресть. Автор там гадает, что да как - но он на большее, ИМХО, и не способен. Разумно грохнуть конфигсейв и почистить настройки юзверей - смотрите сами, в каких таблицах БД они находятся.
DevКак построить цепочку асинхронных вызовов#55 24.02.17 0:03
Не люблю спорить с пенсионерами - слишком скучно.
DevКак вместо пустой ссылки в поле ввода написать произвольный текст#5 23.02.17 19:16
(1) не слушайте этих добрых людей - они не 1С-неги. Все куда проще - использовать подсказку ввода. См. на картинку.

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

Прикрепленные файлы:

Снимок экрана от 2017-02-23 19-15-29.png
DevТаблицы на управляемых формах: создание, расширение, управление.#21 23.02.17 19:06
(19)
Цитата
Если человек сам, носом, ползком по шпалам, не пролопатит некую тему - раз, два, десять, - он так и останется "одинэснегом", а не программистом-разработчиком. Спрашивают тут на собеседовании у одного: как будете решать такую задачу. А он мне и говорит: "на инфостарте скачаю". Вот и нафига, спрашивается, поощрять лень?
Вот поэтому я и пишу обычно псевдокод, чтобы просто так не скопипастить было. Вы тоже так делаете? А кто тут ныл сначала о "дай код":
Цитата
Если уж упомянули про добавление подчинённых реквизитов к объектам "ДанныеФормыКоллекция", связанным с объектами БД, особенно с основным реквизитом формы, то уж распишите нормально, когда этот кэш сбрасывается и когда нет. И как сериализуется, и как передаётся, итд. А то, знаете, фраза "заполнять данную колонку придется при каждом открытии документа" это далеко-о-о не всё, что придётся делать)))
а потом сетовал о песочнице:
Цитата
Я не завидую, я огорчён: спрос рождает предложение; такими темпами мы рискуем превратить ИС в песочницу для студентов, а на то и других ресурсов полно, вот хоть devtrain.
Вы уж определитесь, что хотите.
DevКак построить цепочку асинхронных вызовов#50 23.02.17 18:53
(49) ну плохому танцору всегда обувь жмет.
Медленно работает - это на сколько медленно и что именно? Если взять пустую базу и открыть все действия, то ничего медленного не будет. Тут не проблема толстого/тонкого клиента - тут проблема излишней раздутости конфигурации, которая должна делать простые вещи. Но все же не хотят что-то делать сами, поэтому или копипастят (и этим поддерживают авторов, еще раз рассказывающих об основах), или тащат в свою систему все подряд (БСП - все стопиццот версий, модулей, картинок, макетов, ...). В принципе нет ничего плохого во фреймворках, но то, сколько всяких модулей понапихано в ту же третью бухню - вот это вымораживает. Весь тот функционал можно с командой не слишком умных выпускников какого-либо ВУЗа запилить на PHP за достаточно небольшое время. Вообще, тормоза - это извлечение всех команд формы, связанных с размещенными на ней данными и глобальными командами - вот они там уйму времени получаются.

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

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

По поводу глюка с отправкой, то и 1С нередко глючит и вылетает. Но как раз клиент-серверная архитектура позволяет серверу работать с множеством клиентов, а клиентам быть лишь поставщиками данных для сервера. Тут все упирается в архитектуру решений: если программист постоянно гоняет данные на сервер, таким образом обрабатывая их по-частям, то такой программист просто живет еще в мире старых реалий. Или ему нужно обработать данные на клиенте, а потом все целиком передать на сервер для записи, или ему нужно все сразу не сервере обрабатывать. Но пользователя при этом необходимо как-то проинформировать. И вот тут как раз эта "асинхронность" и должна применяться, когда на сервере запущен процесс обработки, а на клиенте запущен обработчик ожидания, функция которого сводится к тому, чтобы опросить серверный процесс на предмет прогресса и отобразить эту информацию пользователю. 1С это пока иначе как через фоновые задания делать не умеет - очень ее жаль по этому поводу. Но примерно так же дело обстоит и в прочих клиент-серверных приложениях, так что не все так плохо. Другое дело, что иногда в 1С программисты за тарелку супа делают эту асинхронность просто везде. И это даже не их проблема - это проблема общей архитектуры, когда просто дана команда повесить все на свете на обработчик длительных операций. И на столько уж они усираются, что даже обработку управления регламентными и фоновыми заданиями перепилили на оный функционал, что привело к тому, что она еще дольше стала работать, но хоть теперь интерфейс не висит - и то радость )))
DevКак построить цепочку асинхронных вызовов#46 23.02.17 12:21
(44)
Цитата
заканчивая телефонией, факсами, смс
Ну я надеюсь Вы астерикс на 1С не стали писать, а взяли готовый? В этом плане велосипеды не всегда полезны, а с учетом доступности 1С даже в продуктиве весьма далекой от хотя бы 99% с APDEX 90, переносить все жизненные вещи в 1С просто саботаж против своей организации.
DevКак построить цепочку асинхронных вызовов#45 23.02.17 12:18
(43)
Цитата
Всё равно это даже не половина рынка.
Как-то йаху сказало студентам, что их поисковый движок им неинтересен. Ну и где сейчас йаху, а где сейчас гугл. Через три года все это убожество типа толстых клиентов окончательно перестанет поддерживаться, решения будут активно переносится на тонкий клиент и веб-платформу. Потом админам надоест переустанавливать клиентское ПО, и все медленно и верно мигрируют в браузер. Большая часть не 1С мира давно уже живет в браузере, одни желто-красные тормозят, а сообщество им в этих тормозах помогает )))