1.C. Enterprise
947 members
7 photos
44 links
Дневник Джейсона Кирка, капитана корабля 1.C. Enterprise. Много о разработке 1С, немного о фрилансе и близких темах. Ведет @CyberCerber
Download Telegram
to view and join the conversation
Дневник капитана, желтая Дата ‘20200617’.

Вопросы на моем канале 1С: Викторина оказались для многих довольно сложными и непонятными. Но я хочу, чтобы квиз не остался просто непонятным вопросом, а давал какие-то новые знания. Поэтому на этом канале я буду писать разъяснения по особо «крепким орешкам», которые многих сбили с толку.
#quiz1c
Вопрос о событии ПриАктивизацииСтроки

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

А вот изменение заголовка поля может привести к отправлению формы на сервер для ее перерисовки, т.е. к самому настоящему контекстному вызову сервера, что не допустимо при просто клике по строке.

Про это написано в Синтаксис-Помощнике по свойству «Заголовок» и событию «ПриАктивизацииСтроки». Также про это недавно была хорошая заметка на канале Желтый чайник.
#quiz1c
Вопрос об индексах в регистре

Для начала разберем вариант Клиент. Я его докинул просто для количества, но интересно, что он набрал тоже свой процент. Просто, надо понимать, что индексы служат для ускорения поиска и отбора по полям, т.е. главным образом влияют на секцию ГДЕ, а для полей, которые просто возвращаются в выборке, они не нужны.

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

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

Конкретно в рассматриваемом примере нас интересует следующая часть:
Непериодический регистр сведений
ИзмерениеN + Измерение1 + [Измерение2 +...]
Измерению "ИзмерениеN" задано свойство "Индексировать" или свойство "Ведущее" и при этом это не первое и не единственное измерение. Индекс, включающий все измерения. Первое поле - ИзмерениеN, затем все остальные измерения в том порядке, в котором они заданы при конфигурировании.

Т.е. при индексировании поля Товар, будет создан индекс вида Товар + Магазин + Клиент + …. Его начало как раз совпадает с полями в секции ГДЕ регистра, а значит поиск будет происходить по индексу, максимально быстро.
​​Дневник капитана, желтая ДатаВремя(2020-06-23).

Я уже делал краткий обзор 1С:Исполнителя после публикации анонса на Зазеркалье. Но вот в пятницу вышла бета-версия для открытого тестирования, и удалось пощупать это чудо вживую. Узнать, оправдались ли все мои ожидания или нет, увидеть примеры скриптов с разбором, вы можете в моей статье на ИнфоСтарте.
#quiz1c
Вопрос о выборке из регистра накопления
Вопрос важный, но неправильно ответило на него больше 40%, поэтому хочу сделать пояснение…

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

В связи с этим, когда вы хотите получить значение какого-то реквизита из ссылки, например, пишете Регистр.Номенклатура.Артикул, 1С делает невидимое вам ЛЕВОЕ СОЕДИНЕНИЕ с таблицей Номенклатура, чтобы достать оттуда поле Артикул.

И вот, конкретно в нашей задаче есть регистр ТоварыНаСкладах, его поле Регистратор является составным из ссылок на где-то 50 разных типов документов. Значит, чтобы получить Организация для каждого из них, нужно произвести 50 соединений с таблицами разных документов. Кстати, у некоторых документов такого реквизита может и не быть, тогда в выборке будет NULL, но сути это не меняет. Получится монстроидальный запрос, который может повесить сервер. Еще веселее происходит, когда в базе есть ограничения прав на уровне записей, RLS. Чтобы просчитать их, 1С тоже добавляет таблицы. Поэтому, проблемы могут возникнуть и при 10 соединениях.

Обычно, когда идет работа с полями составного типа, нужно ограничить выбор, работать только с одним типом. Чтобы сделать это, можно либо явно соединиться с нужной таблицей и брать поля из нее, либо использовать выражение типа ВЫРАЗИТЬ(Регистратор КАК Документ.РеализацияТоваровУслуг).Организация, оно делает, в принципе, тоже самое.

И еще почти 30% выбрали вариант Склад.Родитель.Код. Да, это выражение тоже такое себе, но здесь идет соединение только с одной таблицей, хоть и два раза. Сначала мы соединяемся с таблицей Склады по ссылке на Склад, чтобы получить ссылку на Родителя. А потом опять соединение с той же таблицей Склады, но теперь уже по Родителю, чтобы получить его Код. Два дополнительных соединения, но не 50.
Проводим розыгрыш призов по 1С в Telegram

Призовой фонд:
1С:Предприятие 8.3. Технологическая поставка
Лицензия “TurboConf Максимальный”
10 участников получат курс “Разработка HTML интерфейса мобильного приложения 1С”
5 участников получат по 1 книге

Чтобы побороться за призы нужно подписаться на ВСЕ каналы:
1. Курсы 1С. NIZAMOV.SCHOOL
2. Osminog (1С и около 1С)
3. FastCode 1С
4. Жёлтый чайник 1С
5. OneSCast
6. 1.C. Enterprise
7. Специалист по платформе 1С

Обязательно заполнить форму

Итоги подведём 10 июля, выбрав 17 победителей, выполнивших все условия в прямом эфире youtube
Полный регламент розыгрыша
​​Дневник капитана, желтая Дата(2020, 6, 30).

Мы, разработчики 1С, являемся, по сути, Full Stack developers. Но если выбирать, я бы отнес себя все же к фронтэнду. Нравится мне больше копаться в клиентской части, играться с интерфейсами, стараться сделать что-то интересное и красивое.

ИнфоСтарт тоже, наверное, знает об этом. Мне оказали честь стать куратором онлайн-митапа "Интерфейс в 1С", который состоится 28 августа. Если у вас есть, что рассказать на тему создания крутых, удобных интерфейсов, пишите мне или оставляйте заявку на сайте. Ну и ждем всех неравнодушных к этой теме на митапе в августе.
Дневник капитана, желтая дата ‘20200708’.
Всем привет! Меня зовут Кос…, т.е. Джейсон, и разрабатываю на EDT уже больше месяца! (Здравствуй, Джейсон… 👏)

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

Конечно, EDT на основе Eclipse не дотягивает до возможностей и удобства сред из семейства IDEA, но все равно это намного более современная IDE по сравнению с конфигуратором. И если текущего функционала Eclipse не хватает, его можно апгрейдить с помощью плагинов. Хоть именно для EDT плагинов еще совсем мало, наши умельцы потихоньку начинают заполнять этот пробел. Если говорить про интерфейс, то он тоже выглядит более современно, нежели в конфигураторе, хотя и сам достаточно накрученный, при работе в EDT стоит учить горячие клавиши. Раскраска кода более продвинутая, есть даже темная тема, только работает она пока кривовато, нужно еще пилить.

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

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

Во-вторых, если у вас есть Sublime Text, VS Code или другой редактор с установленным плагином BSL LS для работы с 1С, вы можете открыть файл любого объекта конфы и посмотреть или изменить то, что вам необходимо. С плагином будет работать подсветка кода и подсказка. Т.е. настоящее хардкорное программирование без всяких IDE, прямо в «блокноте».

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

Работа с кодом. В общем-то, в основном из-за этого процесса я не смог расстаться с EDT. Здесь все на голову выше, нежели в Конфигураторе. Подсказка стала по-настоящему контекстной, она не выдает все подряд, что соответствует набранному тексту, а в первую очередь то, что подходит в текущей ситуации. Например, выдается именно КонецЦикла, если вы заканчиваете цикл, а не КонецЕсли, КонецПроцедуры и т.д. Подсказка стала намного шире. Если вы объявите структуру или таблицу значений, то EDT будет подсказывать имена полей. Для других языков норма, а для нас чудеса!
​​Среда побуждает хорошо оформлять свой код. Если вы будете разделять модуль на области, то в специальном окне Схема модуля все будет четко структурировано и навигация будет удобней. А если вы создаете форматированные комментарии к функциям с описанием типов параметров и возвращаемых значений, то у вас будет работать подсказка еще лучше. Т.е. если будет описано, что конкретная функция возвращает таблицу значений с определенными колонками, то теперь во всех модулях для результата этой функции будет работать расширенная подсказка.

Еще в EDT работает статический анализ кода или проверка кода сразу, тут же при написании. Т.е. создали вы переменную, вам тут же предупреждение, что она нигде пока не используется. Или написали что-то с ошибкой, это тут же будет подсвечено. И работает проверка на уровне всей конфигурации. Если вы удалите какой-нибудь экспортный метод, то ошибки подсветятся везде, где есть вызов этого метода: и в дереве конфигурации, и в панели навигации методов. Ну и сама проверка более глубокая, есть не только ошибки, но и предупреждения. Это, конечно, не Sonar Qube или АПК, но все равно стоит загрузить свою конфигурацию в EDT, чтобы проверить ее на «чистоту кода».

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

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

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

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

Оптимизация и быстродействие на примере моего довольно средненького компа: CPU Intel i5, 12 GB RAM, SSD. Могу сказать, что на маленьких проектах, т.е. на самодельных конфигурациях никаких тормозов нет, все летает. Пробовал подключать УТ 11.4, сам импорт занял около 5 минут, и можно уже было работать в базе, дальнейшие работы по анализу, индексированию съели всю память и заняли почти весь ЦП, но длились не более получаса. После этого EDT стал работать как и раньше, тормозов не замечаю. В запущенном виде сейчас занимает 4 ГБ ОЗУ. Т.е. с быстродействием все в пределах нормы, пока страшилок о «минимум 32 гига оперативки для нормальной работы» я на себе не ощутил.

Многих от перехода на EDT еще останавливает разница в поддерживаемых версиях платформы. Эта претензия уже перестает быть актуальной. На текущий момент отставание лишь в одну версию, а в ближайшие пару месяцев конфигуратор и EDT должны вообще сравняться. Конечно, не все так радужно, как может показаться по тексту, то и дело возникают обидные ошибки, но их теперь намного меньше. Так что я предлагаю всем попробовать этот продукт. Мне кажется, сейчас это уже не игрушка и не сомнительный эксперимент, а серьезный инструмент, на который надо так или иначе переходить.
​​Дневник капитана, желтая Дата(2020, 7, 9).
Канал растет, и много подписчиков, думаю, пропустили старые записи из моего дневника. Решил сделать некий автодайджест с, надеюсь, интересными и полезными материалами.

Мои необычные проекты
• Генерация двумерных штрихкодов на чистом 1С: раз и два.
• О разработке ГИС для кладбища.
• Расчет оптимальной упаковки грузов в контейнер.

Советы, приемы, лайфхаки
• Подключение 1С к различным сервисам посредством Heroku.
Обзор мессенджеров с точки зрения интеграции.
Метод XMLСтрока как незаменимый помощник в интеграциях и не только.
• Взаимодействие мобильной 1С с другими приложениями на Android.
• Методы расчета расстояния между координатами на карте.
«Взлом» сайтов и сервисов из 1С.
• Свой интернет-хостинг файлов в базе.

Недавние публикации на Инфостарте
• Открытие одной формы 1С внутри другой формы.
• Инструмент для удобной раскраски кода в Конфигураторе и EDT.
• Система для создания чат-ботов в нескольких мессенджерах одновременно.
• Первый обзор нового языка 1С:Исполнитель.

Другие мои проекты
Викторина по 1С. Новый вопрос почти каждый будний день.
• Чат по мобильной разработке на 1С.
• Чат по инструменту 1С:Исполнитель.
• Пока совсем небольшой канал на YouTube.
• Аккаунт и репозитории на Github.
​​Дневник капитана, желтая дата ‘20200714’.

Я интересуюсь игрой Что? Где? Когда? сколько себя помню. В детстве смотрел передачу по телевизору, в студенческие годы много играл в спортивный вариант «ЧГК». Сейчас уже, конечно, не до этого, но иногда все равно мы берем набор вопросов из Инета и проверяем свой интеллект.

Рождение ЧГК в новом формате я увидел на портале StopGame. Там делают стримы, где собирают своих авторов и задают им вопросы на тему компьютерных и видео- игр. Я подумал, а почему бы нам не сделать что-то подобное? И вот вместе с Инфостарт мы организовываем тематическую игру «Что? Где? Когда?» со звездным составом знатоков.

Итак,
Что? Возможно, первая игра летней серии игр «Что? Где? Когда?» Кубок Инфостарт.
Где? Прямой эфир – Zoom. Запись – официальный канал Infostart на Youtube.
Когда? Четверг, 16 июля, 19:30 по Москве.

Подключайтесь, будет интересно.
Дневник капитана, желтая Дата(2020, 8, 14).

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

Однако я согласился и так растекся мыслю по древу, что полный текст просто не вместился в текст новости. Я там затронул не только Исполнитель, но и саму экосистему 1С и сообщество.

Ну не пропадать же материалу, поэтому я решил опубликовать полную версию. И пробую я это делать на новой площадке для блогов, чтобы не постить «портянки» текста здесь. В будущем продолжу так делать, а также думаю перенести уже существующие длинные тексты.
​​Дневник капитана, желтая дата ‘20200821’.
На ИнфоСтарте опубликовали доклад о фрилансе, с которым я выступал прошлой осенью в Питере.

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

Поэтому предлагаю почитать о том, как получать московскую зарплату, живя в деревне у дедушки.
​​Дневник капитана, желтая Дата(2020, 9, 4).

Состоялся митап по интерфейсам в 1С. Прошло все, вроде, хорошо, большое спасибо докладчикам за очень интересные темы. А теперь мне оказали честь стать модератором секции мобильной разработки на INFOSTART EVENT 2020 Post-Apocalypse.

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

Мы ждем на секции докладчиков, которые увлечены мобильными технологиями и хотят рассказать о своих достижениях другим людям.
Смотрите, сколько плюсов для докладчика:
1. Возможность поделиться накопленными знаниями с другими людьми. А это очень хороший поступок.
2. Публичное выступление дает хороший опыт даже если вы интровертный разработчик.
3. Фидбек от слушателей, который позволят понять свои ошибки, осознать возможности и развиваться дальше
4. Работа над своим личным брендом и, может, брендом компании. Все–таки, быть докладчиком Infostart Event – это не шутки!
5. Возможность окунуться в особую атмосферу эвента, который собирает первоклассных специалистов со всей страны и не только
6. Бесплатное путешествие в Санкт-Петербург, возможно, самый прекрасный город России.


Буду рад увидеться с вами на Infostart Event 2020!
Всех с праздником! Желаю чистого кода, интересных задач и довольных пользователей. А я сегодня выехал на природу и решил совместить приятное с полезным.
Дневник капитана, желто-синяя дата '20201026'.

В конце сентября 1Сники сделали бравую вылазку в Телеграм-сообщество разработчиков SAP, начались разговоры «за жизнь» у желтого и синего вендоров, сравнение всего и вся.

Дабы обсудить все это в приятном формате, «сапёры» Илья и Иван пригласили Никиту Грызлова и меня принять участие в записи совместного подкаста. Мы попали на юбилейный десятый подкаст их канала и даже, возможно, зародили традицию делать еще и видеозапись. Так что ознакомиться можно в двух форматах.

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

По итогам общения могу сказать, что было развенчано много стереотипов, причем у обеих сторон. У нас с SAP намного больше общего, чем могло казаться: боли, заботы и стремления. 1Сник и сапер братья по оружию и друзья по несчастью.
#10 - 1С и SAP
Z-namespace
Содержание:
2:50 отличие ЯП 1С и ABAP
22:35 русский язык в коде
38:10 среда разработки
53:40 что такое конфигурация?
1:10:10 нужно ли разработчику знать предметную область?
1:29:00 Как проходит работа разраба в соотношении код/общение?
1:39:50 зарплаты по 600К
1:56:25 какие виды фронтенда есть в 1C и SAP
2:09:20 активности со стороны сообщества и со стороны вендора
2:16:15 возможность развиваться как разработчик и без стыда ходить на конференции
2:24:05 сложность прийти и уйти в 1С/SAP
2:33:20 опенсорс
2:40:30 DevOps
2:49:15 yтечка разрабов в другие страны

Ссылки:
- канал Никиты
- канал Константина
- канал Ивана
- канал Ильи
- вакансии в SAP
- смена стека
- gherkin в 1С

🎙Список доступных платформ
Forwarded from Z Namespace
Друзья, в честь юбилейного выпуска мы также записали для вас видео версию подкаста
1.C. Enterprise pinned «​​Дневник капитана, желтая Дата(2020, 7, 9). Канал растет, и много подписчиков, думаю, пропустили старые записи из моего дневника. Решил сделать некий автодайджест с, надеюсь, интересными и полезными материалами. Мои необычные проекты • Генерация двумерных…»