Быстрое прикрепление окон
В управляемом интерфейсе есть возможность прикрепить окно к одной из сторон приложения. Но не все знают, что это можно сделать одним щелчком мыши, просто перетаскивая закладку окна из панели открытых.
#формы #управляемыеформы #интерфейсы
Автор: @reborn85
В управляемом интерфейсе есть возможность прикрепить окно к одной из сторон приложения. Но не все знают, что это можно сделать одним щелчком мыши, просто перетаскивая закладку окна из панели открытых.
#формы #управляемыеформы #интерфейсы
Автор: @reborn85
Переключатель из кнопок
Если кнопки на командной панели объединить компактной группой и указать полукруглую форму, то получится весьма приятная на вид и удобная в использовании группа кнопок.
А добавив немного кода, такую группу кнопок можно использовать как альтернативный переключатель. Или выключатель :)
Нюанс в том, что сделать это можно только для группы кнопок командной панели.
#формы #управляемыеформы #интерфейсы
Если кнопки на командной панели объединить компактной группой и указать полукруглую форму, то получится весьма приятная на вид и удобная в использовании группа кнопок.
А добавив немного кода, такую группу кнопок можно использовать как альтернативный переключатель. Или выключатель :)
Нюанс в том, что сделать это можно только для группы кнопок командной панели.
#формы #управляемыеформы #интерфейсы
Расчленённый текст запроса
Хорошо, когда текст запроса всегда открывается в конструкторе, и при этом не ломается результат после его использования. Ещё лучше, если конструктор работает для всех ваших запросов. Даже сложных, которые собираются программно.
Один из случаев - это когда в двух частях текста описываются разные временные таблицы. Тогда встаёт вопрос наличия символа ";" между ними. Если добавлять точку с запятой в конец первой части, то после использования конструктора она слетает. А каждый раз помнить о ней не всегда получается.
Выход - добавлять ";" как отдельную часть текста. Тогда и конструктор, и результат остаются рабочими! 😎
#разработка #код #запросы
Хорошо, когда текст запроса всегда открывается в конструкторе, и при этом не ломается результат после его использования. Ещё лучше, если конструктор работает для всех ваших запросов. Даже сложных, которые собираются программно.
Один из случаев - это когда в двух частях текста описываются разные временные таблицы. Тогда встаёт вопрос наличия символа ";" между ними. Если добавлять точку с запятой в конец первой части, то после использования конструктора она слетает. А каждый раз помнить о ней не всегда получается.
Выход - добавлять ";" как отдельную часть текста. Тогда и конструктор, и результат остаются рабочими! 😎
#разработка #код #запросы
Защита кода от себя
Чтобы использовать контекстную подсказку к объекту, объявление которого находится за пределами модуля, мы пишем временное объявление, которое потом забываем удалить.
Если использовать инструкцию препроцессора со значением Ложь (как на картинке 👇), платформа сама об этом напомнит 🙃
А если хочется оставить строку-помощник, чтобы платформа не выдавала ошибки, напишите:
#Если Сервер и Не Сервер Тогда
#разработка #код #лайфхак
Чтобы использовать контекстную подсказку к объекту, объявление которого находится за пределами модуля, мы пишем временное объявление, которое потом забываем удалить.
Если использовать инструкцию препроцессора со значением Ложь (как на картинке 👇), платформа сама об этом напомнит 🙃
А если хочется оставить строку-помощник, чтобы платформа не выдавала ошибки, напишите:
#Если Сервер и Не Сервер Тогда
#разработка #код #лайфхак
Выделение идентификаторов
Сёрфинг по локальным переменным модуля будет комфортнее, если в параметрах системы установить расцветку для "Текущего идентификатора" и "Выбранного идентификатора".
В платформе до версии 8.3.16 эта настройка по умолчанию отключена.
#администрирование #код #лайфхак
Сёрфинг по локальным переменным модуля будет комфортнее, если в параметрах системы установить расцветку для "Текущего идентификатора" и "Выбранного идентификатора".
В платформе до версии 8.3.16 эта настройка по умолчанию отключена.
#администрирование #код #лайфхак
На что обратить внимание, если тормозят запросы?
✅ Выбирай только нужные данные. Каждое выбранное поле - это новая колонка полученной таблицы, а значит увеличение объема памяти и времени на обработку. И никогда не используй выборку с помощью звёздочку ("*" = все поля таблицы) - можно нарваться на сильно составные поля или поля с недопустимым типом. Либо на них нарвется тот, кто будет дорабатывать конфу после тебя
✅ Избегай лишних обращений через точку. Так ты неявно обращаешься к другой таблице БД, и при переводе запроса на язык SQL 1С-ка делает из такой конструкции дополнительное левое соединение
✅ Лучше временная таблица, чем вложенный запрос или виртуальная таблица. Так ты помогаешь транслятору SQL "перевести" текст запроса наиболее оптимальным образом
✅ Уничтожай ненужные временные таблицы в пакете запросов. Освобождая память, которую занимает результат запроса, можно значительно уменьшить время на его обработку
✅ Используй индексы. Поля ВТ, по которым в следующих запросах пакета таблица будет фильтроваться или присоединяться, принято индексировать. Но это не панацея, каждый случай нужно тестировать. Бывает, что после добавления индекса скорость падает
✅ Накладывай условия в параметрах виртуальной таблицы регистра, а не в секции ГДЕ. Просто прими за аксиому и делай так всегда. Но только условия должны накладываться на измерения и их реквизиты.
(продолжение следует...)
#запросы #оптимизация
✅ Выбирай только нужные данные. Каждое выбранное поле - это новая колонка полученной таблицы, а значит увеличение объема памяти и времени на обработку. И никогда не используй выборку с помощью звёздочку ("*" = все поля таблицы) - можно нарваться на сильно составные поля или поля с недопустимым типом. Либо на них нарвется тот, кто будет дорабатывать конфу после тебя
✅ Избегай лишних обращений через точку. Так ты неявно обращаешься к другой таблице БД, и при переводе запроса на язык SQL 1С-ка делает из такой конструкции дополнительное левое соединение
✅ Лучше временная таблица, чем вложенный запрос или виртуальная таблица. Так ты помогаешь транслятору SQL "перевести" текст запроса наиболее оптимальным образом
✅ Уничтожай ненужные временные таблицы в пакете запросов. Освобождая память, которую занимает результат запроса, можно значительно уменьшить время на его обработку
✅ Используй индексы. Поля ВТ, по которым в следующих запросах пакета таблица будет фильтроваться или присоединяться, принято индексировать. Но это не панацея, каждый случай нужно тестировать. Бывает, что после добавления индекса скорость падает
✅ Накладывай условия в параметрах виртуальной таблицы регистра, а не в секции ГДЕ. Просто прими за аксиому и делай так всегда. Но только условия должны накладываться на измерения и их реквизиты.
(продолжение следует...)
#запросы #оптимизация
Ты можешь сам сменить пароль!
Если ты работаешь с хранилищем конфигурации и хочешь сменить свой пароль, не нужно бежать к админу или архитектору. Сделай это сам!
Да-да, независимо от того, какие у тебя права! Заходишь в Администрирование хранилища, открываешь свою учётку и меняешь пароль. Вуаля! 😃
При минимальных правах на действия с хранилищем, это единственное, что остаётся доступным всегда.
#администрирование #лайфхак
Если ты работаешь с хранилищем конфигурации и хочешь сменить свой пароль, не нужно бежать к админу или архитектору. Сделай это сам!
Да-да, независимо от того, какие у тебя права! Заходишь в Администрирование хранилища, открываешь свою учётку и меняешь пароль. Вуаля! 😃
При минимальных правах на действия с хранилищем, это единственное, что остаётся доступным всегда.
#администрирование #лайфхак
На что обратить внимание, если тормозят запросы? (продолжение)
✅ Для вывода используй Представление. Если результат запроса будет использован для вывода (например, для заполнения макета отчета), то выводимое поле лучше представить строкой. Ссылка конечно выведется корректно, но времени на это будет затрачено до 40% больше. Используй Наименование или Представление
✅ Осторожно с составными типами! При проектировании объектов БД никогда не допускай реквизитов составного типа, состоящих одновременно из ссылок и примитивных типов. Устройство таких таблиц станет крайне сложной для обработки, и никакие индексы не помогут их оптимизировать. Лучше два отдельных реквизита и последующее объединение запросов
✅ Используй функцию ВЫРАЗИТЬ. На сцене снова реквизиты составного типа. Если достаточно одной таблицы, входящей в состав, используй ВЫРАЗИТЬ, чтобы избежать неявного соединения со всеми таблицами, составляющими тип. Нередко производительность из-за этого улучшается на порядки!
✅ Используй конструкцию ПЕРВЫЕ. Если нужны не все записи результата, не заставляй сервер пыхтеть над обработкой миллионов строк
✅ Не используй поле Ссылка от реквизитов ссылочного типа. Конструкция вида:
ВЫБРАТЬ
Клиенты.Договор.Ссылка КАК Договор
Приведёт к чтению всей таблицы договоров вместо получения одной ссылки. Тот же результат, но с меньшими затратами:
ВЫБРАТЬ
Клиенты.Договор КАК Договор
✅ Не применяй избыточное агрегирование. Иногда для сворачивания результата, на верочку делают группировку вместе с конструкцией РАЗЛИЧНЫЕ:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Остатки.Товар КАК Товар
ИЗ
РегистрНакопления.ОстаткиТоваров КАК Остатки
Сгруппировать по
Остатки.Товар
Оставь что-то одно, и при том же результате получишь группировку вдвое быстрее.
#запросы #оптимизация #чеклисты
✅ Для вывода используй Представление. Если результат запроса будет использован для вывода (например, для заполнения макета отчета), то выводимое поле лучше представить строкой. Ссылка конечно выведется корректно, но времени на это будет затрачено до 40% больше. Используй Наименование или Представление
✅ Осторожно с составными типами! При проектировании объектов БД никогда не допускай реквизитов составного типа, состоящих одновременно из ссылок и примитивных типов. Устройство таких таблиц станет крайне сложной для обработки, и никакие индексы не помогут их оптимизировать. Лучше два отдельных реквизита и последующее объединение запросов
✅ Используй функцию ВЫРАЗИТЬ. На сцене снова реквизиты составного типа. Если достаточно одной таблицы, входящей в состав, используй ВЫРАЗИТЬ, чтобы избежать неявного соединения со всеми таблицами, составляющими тип. Нередко производительность из-за этого улучшается на порядки!
✅ Используй конструкцию ПЕРВЫЕ. Если нужны не все записи результата, не заставляй сервер пыхтеть над обработкой миллионов строк
✅ Не используй поле Ссылка от реквизитов ссылочного типа. Конструкция вида:
ВЫБРАТЬ
Клиенты.Договор.Ссылка КАК Договор
Приведёт к чтению всей таблицы договоров вместо получения одной ссылки. Тот же результат, но с меньшими затратами:
ВЫБРАТЬ
Клиенты.Договор КАК Договор
✅ Не применяй избыточное агрегирование. Иногда для сворачивания результата, на верочку делают группировку вместе с конструкцией РАЗЛИЧНЫЕ:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Остатки.Товар КАК Товар
ИЗ
РегистрНакопления.ОстаткиТоваров КАК Остатки
Сгруппировать по
Остатки.Товар
Оставь что-то одно, и при том же результате получишь группировку вдвое быстрее.
#запросы #оптимизация #чеклисты
👍1
Чек-лист видимости элемента формы
Если не знаешь, куда пропал элемент с формы и как его вернуть на место:
Читать статью
#управляемыеформы #чеклисты
Если не знаешь, куда пропал элемент с формы и как его вернуть на место:
Читать статью
#управляемыеформы #чеклисты
the Gig - блог программиста 1C web
Чек-лист видимости элемента - the Gig - блог программиста 1C web
Иногда при разработке встречается такая проблема: размещённый на форме элемент не отображается в режиме 1С:Предприятия. Хотя, по задумке и всем представлениям его должно быть видно. Что же делать с «чудесным исчезновением?». Причин подобного поведения множество.…
Быстрый поиск объектов
В последнее время часто слышу вопрос типа: "А как узнать, как в конфигураторе называется отчёт, который в меню называется так-то?". Видимо, народ активно осваивает управляемые формы 🙂
Вверху окна с деревом метаданных есть строка быстрого поиска. Забиваем в неё то, что интересует, и дерево фильтруется по вхождению части слова.
Прикол в том, что поиск происходит не только по имени, но и по синониму. И если у объекта эти два свойства отличаются, это легко отлавливается 😎
#конфигурирование #администрирование
В последнее время часто слышу вопрос типа: "А как узнать, как в конфигураторе называется отчёт, который в меню называется так-то?". Видимо, народ активно осваивает управляемые формы 🙂
Вверху окна с деревом метаданных есть строка быстрого поиска. Забиваем в неё то, что интересует, и дерево фильтруется по вхождению части слова.
Прикол в том, что поиск происходит не только по имени, но и по синониму. И если у объекта эти два свойства отличаются, это легко отлавливается 😎
#конфигурирование #администрирование
Дополнение от @ArtanoMayarov к последнему посту про быстрый поиск:
Небольшое уточнение: искать можно по нескольким поисковым выражениям. В данном случае введя строку "вари отче" получим тот же результат (или что еще по этой маске отработает). Пробел в поисковой строке выступает разделителем для поисковых выражений
Небольшое уточнение: искать можно по нескольким поисковым выражениям. В данном случае введя строку "вари отче" получим тот же результат (или что еще по этой маске отработает). Пробел в поисковой строке выступает разделителем для поисковых выражений
Настройки конфигуратора, которые помогают мне работать эффективнее 💪
☑️ Запрет помещать курсор после конца строк и отображение непечатаемых символов
Помогает избежать лишних изменений при сравнении/объединении и лишних коммитов при работе с Git. Просто договорились в команде, как отделяем строки, какой синтаксический отступ используем, и никаких пробелов в конце строк.
Знак табуляции меняю на маленькую стрелочку (код 26), т.к. дефолтный кружок сильно отвлекает.
☑️ Расцветка кода
Когда ушел от типовой расцветки в пользу международной от VSCode, глаза стали меньше напрягаться и болеть. По настроению чередую светлую и темную темы (но чаще пользуюсь темной), благо разница только в цвете фона.
☑️ Автозамены, проверки и группировки
Контекстную подсказку и автоформатирование сразу включаю по максимуму, чтобы уже не париться во время работы. Сюда же - все клиенты отладчика и кнопки редактирования модуля на панелях инструментов.
☑️ Запуск от имени пользователя без имени
Настройку ставлю один раз, но при каждом запуске отладчика сам выбираю, под кем запускаться. Очень ускоряет ролевое тестирование. Единственное, по началу придется смириться с окном авторизации при каждом запуске, но к этому быстро привыкаешь 🙂
☑️ Шаблоны текстов
Стандартные сразу отключаю 👿, ставлю шаблоны от Чистова и пишу свои. Свои храню в отдельном репозитории на Github.
✅ Все настройки вынес в отдельный гугло-док. Когда надо настроить новую или слетевшую среду, просто открываю его и за 5 минут повторяю в конфе.
Даю ссылку на свой документ. Можете пользоваться им или по аналогии сделать свой под себя 😀
Очень удобно, рекомендую!
https://docs.google.com/document/d/1hSdgJ-Hz9GWs9o1IdtOl7U841o--BxiwZ-xFyM29bho/edit?usp=sharing
#конфигурирование #разработка
☑️ Запрет помещать курсор после конца строк и отображение непечатаемых символов
Помогает избежать лишних изменений при сравнении/объединении и лишних коммитов при работе с Git. Просто договорились в команде, как отделяем строки, какой синтаксический отступ используем, и никаких пробелов в конце строк.
Знак табуляции меняю на маленькую стрелочку (код 26), т.к. дефолтный кружок сильно отвлекает.
☑️ Расцветка кода
Когда ушел от типовой расцветки в пользу международной от VSCode, глаза стали меньше напрягаться и болеть. По настроению чередую светлую и темную темы (но чаще пользуюсь темной), благо разница только в цвете фона.
☑️ Автозамены, проверки и группировки
Контекстную подсказку и автоформатирование сразу включаю по максимуму, чтобы уже не париться во время работы. Сюда же - все клиенты отладчика и кнопки редактирования модуля на панелях инструментов.
☑️ Запуск от имени пользователя без имени
Настройку ставлю один раз, но при каждом запуске отладчика сам выбираю, под кем запускаться. Очень ускоряет ролевое тестирование. Единственное, по началу придется смириться с окном авторизации при каждом запуске, но к этому быстро привыкаешь 🙂
☑️ Шаблоны текстов
Стандартные сразу отключаю 👿, ставлю шаблоны от Чистова и пишу свои. Свои храню в отдельном репозитории на Github.
✅ Все настройки вынес в отдельный гугло-док. Когда надо настроить новую или слетевшую среду, просто открываю его и за 5 минут повторяю в конфе.
Даю ссылку на свой документ. Можете пользоваться им или по аналогии сделать свой под себя 😀
Очень удобно, рекомендую!
https://docs.google.com/document/d/1hSdgJ-Hz9GWs9o1IdtOl7U841o--BxiwZ-xFyM29bho/edit?usp=sharing
#конфигурирование #разработка
Google Docs
Настройки конфигуратора повышающие эффективность
Настройки конфигуратора которые помогают мне работать эффективнее Меню “Сервис - Параметры” Вкладка “Тексты” Снять флажок “Разрешать помещать курсор после концов строк” Отображать пробелы и табуляции (табуляция-стрелочка: Alt+26 на цифровой клавиатуре) Вкладка…
Регистрация исключений
Многие не знают, что перехват исключения с помощью оператора Попытка...Исключение, отключает запись исключения в журнале регистрации.
Поэтому, если вам приходится перехватывать исключения чтобы не остановить выполнение программы (например при обработке большого массива несвязанных объектов), то позаботьтесь о регистрации исключений самостоятельно
В данном упрощенном примере выполняется проведение документов в попытке (внутри класса-обертки "Документ" запись идет через классическую попытку)
В случае ошибок выполняется регистрация ошибки в ЖР и вывод сообщения пользователю.
Для Каждого Документ Из ДокументыКОбработке Цикл
Если Не Документ.Провести() Тогда
РегистрацияОшибки(Документ.Объект, Документ.ИнформацияОбОшибке())
Сообщить(Документ.ПредставлениеОшибки());
КонецЕсли;
КонецЦикла;
(@ArtanoMayarov)
#разработка
Многие не знают, что перехват исключения с помощью оператора Попытка...Исключение, отключает запись исключения в журнале регистрации.
Поэтому, если вам приходится перехватывать исключения чтобы не остановить выполнение программы (например при обработке большого массива несвязанных объектов), то позаботьтесь о регистрации исключений самостоятельно
В данном упрощенном примере выполняется проведение документов в попытке (внутри класса-обертки "Документ" запись идет через классическую попытку)
В случае ошибок выполняется регистрация ошибки в ЖР и вывод сообщения пользователю.
Для Каждого Документ Из ДокументыКОбработке Цикл
Если Не Документ.Провести() Тогда
РегистрацияОшибки(Документ.Объект, Документ.ИнформацияОбОшибке())
Сообщить(Документ.ПредставлениеОшибки());
КонецЕсли;
КонецЦикла;
(@ArtanoMayarov)
#разработка
Горячие клавиши для переключения в редакторе форм
Можно тоже поделюсь своим небольшим открытием. Вдруг кто-то также как и я, не знает и мучается.
В редакторе управляемых форм можно переключаться между "формой" и "модулем" комбинацией Alt+Цифра
Переключиться на закладку "Форма"
Alt + 1
Переключиться на закладку "Модуль"
Alt + 2
Переключиться на закладку "Форма" и активизировать закладку "Элементы"
Alt + 3
Переключиться на закладку "Форма" и активизировать закладку "Реквизиты"
Alt + 4
Переключиться на закладку "Форма" и активизировать закладку "Команды"
Alt + 5
Переключиться на закладку "Форма" и активизировать закладку "Командный интерфейс"
Alt + 6
Переключиться на закладку "Форма" и активизировать закладку "Параметры"
Alt + 7
Переключиться на закладку "Форма" и активизировать окно предварительного просмотра формы
Alt + 8
(@rzabolotin)
#разработка #конфигурирование
Можно тоже поделюсь своим небольшим открытием. Вдруг кто-то также как и я, не знает и мучается.
В редакторе управляемых форм можно переключаться между "формой" и "модулем" комбинацией Alt+Цифра
Переключиться на закладку "Форма"
Alt + 1
Переключиться на закладку "Модуль"
Alt + 2
Переключиться на закладку "Форма" и активизировать закладку "Элементы"
Alt + 3
Переключиться на закладку "Форма" и активизировать закладку "Реквизиты"
Alt + 4
Переключиться на закладку "Форма" и активизировать закладку "Команды"
Alt + 5
Переключиться на закладку "Форма" и активизировать закладку "Командный интерфейс"
Alt + 6
Переключиться на закладку "Форма" и активизировать закладку "Параметры"
Alt + 7
Переключиться на закладку "Форма" и активизировать окно предварительного просмотра формы
Alt + 8
(@rzabolotin)
#разработка #конфигурирование
Дорогие друзья!
Кто ведет свой бизнес или является самозанятым/контрактором/фрилансером! Мы с коллегами проводим исследование, изучаем поведение людей в сфере HR.
Если вас не очень сильно затруднит, ответьте пожалуйста на вопросы в этой анкете.
Если же вы нанимаете других, будь то сотрудники или подрядчики/субподрядчики, будем очень признательны за заполнение этой формы.
Контактная информация необязательна, но если вам не хочется разглашать своё инкогнито и при этом получить возможность первыми воспользоваться грядущими уникальными возможностями 🙂 то можете маякнуть об интересе в личку @PetrTsap. Смею надеяться, что эти возможности пригодятся везде в мире 🙂
Скорей всего, в отдельном посте расскажем о деперсонализированных результатах опроса. Надеюсь, это будет интересно.
#опрос
Кто ведет свой бизнес или является самозанятым/контрактором/фрилансером! Мы с коллегами проводим исследование, изучаем поведение людей в сфере HR.
Если вас не очень сильно затруднит, ответьте пожалуйста на вопросы в этой анкете.
Если же вы нанимаете других, будь то сотрудники или подрядчики/субподрядчики, будем очень признательны за заполнение этой формы.
Контактная информация необязательна, но если вам не хочется разглашать своё инкогнито и при этом получить возможность первыми воспользоваться грядущими уникальными возможностями 🙂 то можете маякнуть об интересе в личку @PetrTsap. Смею надеяться, что эти возможности пригодятся везде в мире 🙂
Скорей всего, в отдельном посте расскажем о деперсонализированных результатах опроса. Надеюсь, это будет интересно.
#опрос
Друзья!
Есть идея запустить новую рубрику «Викторина», в качестве примера - пост ниже 👇
А по вашим реакциям я пойму, зашло вам или нет? 🙂
Есть идея запустить новую рубрику «Викторина», в качестве примера - пост ниже 👇
А по вашим реакциям я пойму, зашло вам или нет? 🙂
#викторина
На какой строке вылетит ошибка, если у пользователя не никаких прав на справочник Сотрудники?
На какой строке вылетит ошибка, если у пользователя не никаких прав на справочник Сотрудники?