1C Portal | Программирование


Гео и язык канала: Россия, Русский
Категория: Технологии


Присоединяйтесь к нашему каналу и погрузитесь в мир для 1С-разработчика
Связь: @devmangx

Связанные каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций


Поставка международной версии конфигурации

🟡 Если подсистема или объект в основном международные, но нужно добавить национальную специфику, создавайте общие модули с постфиксом Локализация.

🟡 В алгоритмах, где нужно дополнить или переопределить поведение, делайте вызов в эти модули.

🟡 В международной поставке модули с постфиксом Локализация не должны содержать прикладной код.

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

https://v8std.ru/std/769/

@Portal_1C


Быстрый совет по 1С

Если нужно получить все строки ТаблицыЗначений, соответствующие условию, не перебирайте таблицу вручную.

Используйте НайтиСтроки():

Строки = Таблица.НайтиСтроки(
Новый Структура("Статус", "НеОбработан")
);

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

@Portal_1C


Быстрый совет по 1С

При отладке не обязательно постоянно добавлять Сообщить() и потом удалять его из кода. Используйте условные точки останова в отладчике 1С.

Например, можно остановить выполнение только когда:

Количество > 1000

Особенно удобно внутри больших циклов: отладчик пропустит ненужные итерации и остановится только при выполнении заданного условия.

@Portal_1C


Особенности использования в запросах оператора ПОДОБНО

🟡Сравнение выполняется без учета регистра символов
🟡Оператор ПОДОБНО используйте без контатенации шаблона в запросе. Пишите шаблон сразу или берите из параметра.
🟡Если нужна работа на всех СУБД то используйте в паттерне только спецсимволы % (процент) и _ (подчеркивание). На IBM DB2 […] и [^…] не работает.
🟡Спецсимолы из запроса пользователя надо экранировать, иначе запрос может пойти не по плану.

Для поиск по строке Шуруп_10[21] медь~4% надо написать фрагмент.


Шуруп~_10~[21~] медь~~4~%" СПЕЦСИМВОЛ "~"


🟡Запрос.УстановитьПараметр() не экранирует спецсимволы шаблона подобия
🟡Используйте ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе() для формирования шаблонов подобия

https://v8std.ru/std/726/

@Portal_1C


Быстрый совет по 1С

Если нужно выполнить код для каждого элемента массива, не обязательно писать цикл.

Можно использовать:
Для Каждого Элемент Из Массив Цикл
Обработать(Элемент);
КонецЦикла;

Но если задача — передать каждый элемент в процедуру, иногда удобнее использовать встроенный метод:
Массив.ДляКаждого(Обработать);

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

@Portal_1C


Доступ к файловой системе из кода конфигурации

🟡 Если один и тот же файл обрабатывается и на клиенте, и на сервере, передавайте его через временное хранилище.

🟡 В именах файлов, которые формируются системой, используйте только английские буквы и цифры.

🟡 Если временные файлы или каталоги используются на сервере, завершайте работу с ними в рамках одного серверного вызова.

🟡 Если конфигурация использует БСП, для транслитерации имен файлов применяйте СтроковыеФункцииКлиентСервер.СтрокаЛатиницей().

https://v8std.ru/std/542/

@Portal_1C


Как ускорить 1С без изменения кода?

Интересный разбор от Tantor Labs о том, как оптимизировать работу 1С на PostgreSQL и находить узкие места в производительности.

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

Читать на Хабре: https://habr.com/ru/companies/tantor/articles/1071746/

@Portal_1C


Быстрый совет по 1С

Если нужно получить значение реквизита объекта по его имени, не используйте Выполнить() и не городите конструкции с Если.

В 1С для этого есть:
Значение = Объект[ИмяРеквизита];

Например:
ИмяРеквизита = "Наименование";
Значение = Справочник[ИмяРеквизита];

Удобно, когда имя реквизита приходит динамически — например, из настроек, обработки или внешнего источника.

@Portal_1C


Полезный инструмент для 1С

v8-code-style — расширение от 1С, которое помогает писать код и разрабатывать конфигурации в соответствии со стандартами 1С:Предприятия 8.

Инструмент пригодится, если хотите:

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

https://github.com/1C-Company/v8-code-style

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


Округление результатов арифметических операций в запросах

🟡 Если в операции деления заранее известны порядки числителя и знаменателя, по возможности избегайте деления заведомо маленького числа на заведомо большое.

🟡 При арифметических операциях в запросах платформа обычно поддерживает точность до 8 знаков после запятой.

🟡 Но из-за особенностей разных СУБД реальная точность может отличаться.

🟡 ВЫРАЗИТЬ применяйте к операндам, если на какой-то СУБД точность недостаточна.

https://v8std.ru/std/535/

@Portal_1C


Версия платформы 1С:Предприятие для разработки

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

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

🟡 В этом случае пользователи могут продолжать работу на текущем сертифицированном релизе и одновременно получают рекомендацию по обновлению.

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

https://v8std.ru/std/785/

@Portal_1C


Как 1С-разработчик убеждает себя 👍

@Portal_1C


Правила создания общих модулей

🟡 Общие модули создавайте для процедур и функций, объединенных по одному признаку.

🟡 При разработке общих модулей выбирайте один из четырех контекстов выполнения.

🟡 Серверные общие модули используйте для внутренней серверной бизнес-логики.

🟡 Именуйте по общим правилам именования.

https://v8std.ru/std/469/

@Portal_1C


ИИ-помощник научился работать с данными 1С без создания отдельных отчетов

В статье показали 7 практических сценариев работы Codex для 1С: пользователь просто формулирует задачу обычным языком, а помощник сам получает и анализирует данные информационной базы.

Что умеет:

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

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

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

https://habr.com/ru/companies/infostart/articles/1067030/

@Portal_1C


Поиск в коллекциях значений

🟡 Для НайтиСтроки() список полей индекса должен точно совпадать со списком полей в структуре поиска (порядок полей не важен).

🟡 В этих вариантах поиск обычно выполняется за константное время, а в массиве — перебором, то есть пропорционально числу элементов.

🟡 При поиске сразу по нескольким колонкам учитывайте ограничения ниже.

🟡 Если поля не совпадают, индекс не используется и выполняется полный перебор.

https://v8std.ru/std/452/

@Portal_1C


Поля «Ответственный» и «Комментарий»

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

🟡 Располагайте внизу формы документа, последним полем.

🟡 Заголовок Комментарий выводите в названии вкладки, а у самого поля заголовок не отображайте.

🟡 Поле Ответственный выводите в нижней части формы документа.

https://v8std.ru/std/719/

@Portal_1C


Быстрый совет по 1С

Если в запросе нужно проверить несколько значений одного поля, не пишите длинную цепочку:
ГДЕ
Товар = &Товар1
ИЛИ Товар = &Товар2
ИЛИ Товар = &Товар3

Используйте В:
ГДЕ
Товар В (&Товары)

А параметром передайте массив значений:
Запрос.УстановитьПараметр("Товары", МассивТоваров);

Так запрос проще читать, а список значений можно формировать динамически.

@Portal_1C


GitHub, который стоит сохранить каждому 1С-разработчику

awesome-1c — большая подборка полезных open-source проектов, инструментов и ресурсов для разработки на 1С.

Внутри можно найти решения для:

🟡 тестирования и автоматизации
🟡 OneScript и CLI-инструментов
🟡 Git и CI/CD
🟡 1С и разработки
🟡 анализа кода
🟡 работы с конфигурациями
🟡 документации и обучения

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

Сохраняйте — пригодится, когда в очередной раз понадобится автоматизировать то, что 1С сама делать не хочет.

https://github.com/artbear/awesome-1c

@Portal_1C


Размеры экрана

🟡Ориентируйтесь на типовое разрешение 1280×768 и масштаб 96 DPI (100%).

🟡Считайте, что окно развернуто на весь экран, но часть высоты занимает панель задач и браузера.

🟡Рабочая область — примерно 1280×668.

🟡Формы должны помещаться без горизонтальной и вертикальной прокрутки (вертикальная допустима только в списках).

https://v8std.ru/std/727/

@Portal_1C


Программисты в 2026 🐺

@Portal_1C

Показано 20 последних публикаций.