Логотип

1C программист

Cтатьи, курсы, советы, шаблоны кода 1С.

Реклама: https://t.me/evgenycarter
Подписчики
952
За 24 часа
+116
Закреплено
📌 Добро пожаловать в чат 1C программист! Коллеги, создали чат для общения и обсуждения текщих вопросов, которые возникают в процессе нашей любимой работы. Вступайте, общайтесь, решайте вопросы, помогайте другим. https://max.ru/join/w5Xw4TXPvK2IE6irN3idsGgHoIzdId2s9d2yS89Q6_E
12:58 18-02-2026
Отладчик 1С за 10 минут

Для чего нужен отладчик 1С и как с ним работать. За 10 минут рассмотрим основные возможности отладки кода в 1С.
Для отладки в 1С используется отладчик. В видео мы разберем как пользоваться отладчиком 1С:
- что такое точка останова 1С
- безусловная точка останова 1С и точка останова с условием
- команды при работе в режиме отладки 1С
- как вычислить значение переменной при отладке 1с
- для чего используется инструмент "Табло"
- для чего используется инструмент "Стек вызовов"
- для чего используется инструмент "Замер производительности"

источник

✍️ @odin1C_rus
11:09 16-02-2026
1С Конвертация данных: пошаговая инструкция по настройке первого обмена

источник

✍️ @odin1C_rus
11:34 15-02-2026
Разложить строку в массив подстрок

1С 8.3 БСП РазложитьСтрокуВМассивПодстрок: разбивает строку на несколько строк по указанному разделителю. Разделитель может иметь любую длину. Если разделителем является строка из одного символа, и не используется параметр СокращатьНепечатаемыеСимволы, рекомендуется использовать функцию платформы СтрРазделить.
Официальная документация ИТС по функционалу

Примера кода №1

&НаКлиенте
Процедура ПримерИспользованияРазложитьСтрокуВМассивПодстрок(Команда)

МояСтрока = "Пушкин А.С.;г.Санкт-Петербург;Писатель;26.05.1799";
// Разделитель ";",
Результат = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(МояСтрока,";",Истина,Истина);
Сообщить(Результат[0]); //Пушкин А.С.

КонецПроцедуры

Примера кода от rayastar

// возвратит массив из двух элементов: "один", "два";
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("один,два");

// возвратит массив из двух элементов: "один", "два";
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("один, два",,,Истина);

// возвратит массив из двух элементов: "один", "два";
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("один два", " ");

// возвратит массив из 5 элементов, три из которых // пустые: "", "один", "", "два", "";
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(";один;;два;", ";")

Функция БСП

Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено,
СокращатьНепечатаемыеСимволы = Ложь) Экспорт

Если Разделитель = ","
И ПропускатьПустыеСтроки = Неопределено
И СокращатьНепечатаемыеСимволы Тогда

Результат = СтрРазделить(Значение, ",", Ложь);
Для Индекс = 0 По Результат.ВГраница() Цикл
Результат[Индекс] = СокрЛП(Результат[Индекс])
КонецЦикла;
Возврат Результат;

КонецЕсли;

Результат = Новый Массив;

// Для обеспечения обратной совместимости.
Если ПропускатьПустыеСтроки = Неопределено Тогда
ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
Если ПустаяСтрока(Значение) Тогда
Если Разделитель = " " Тогда
Результат.Добавить("");
КонецЕсли;
Возврат Результат;
КонецЕсли;
КонецЕсли;
//

Позиция = СтрНайти(Значение, Разделитель);
Пока Позиция > 0 Цикл
Подстрока = Лев(Значение, Позиция - 1);
Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
Если СокращатьНепечатаемыеСимволы Тогда
Результат.Добавить(СокрЛП(Подстрока));
Иначе
Результат.Добавить(Подстрока);
КонецЕсли;
КонецЕсли;
Значение = Сред(Значение, Позиция + СтрДлина(Разделитель));
Позиция = СтрНайти(Значение, Разделитель);
КонецЦикла;

Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Значение) Тогда
Если СокращатьНепечатаемыеСимволы Тогда
Результат.Добавить(СокрЛП(Значение));
Иначе
Результат.Добавить(Значение);
КонецЕсли;
КонецЕсли;

Возврат Результат;

КонецФункции


✍️ @odin1C_rus
11:49 14-02-2026
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
14:44 09-02-2026
Ошибки работы с объектами

Пример разбора самых распространенных ошибок кода:
- Обращение к ссылке через точку;
- Представление ссылочных типов.

источник

✍️ @odin1C_rus
08:37 06-02-2026
Основы использования таблиц значений

В ролике рассматриваются темы:
Создание ТЗ с помощью кода
Создание ТЗ запросом
ТЗ как параметр запроса. Что можно и что нельзя в запросе, где ТЗ является параметром.
ТЗ и построитель запросов
ТЗ и построитель отчетов
ТЗ и СКД - использование в отчетах и обработках, управляемых и обычных формах.

00:00 Вступление
00:33 Создание ТЗ с помощью кода.
01:52 Создание ТЗ запросом
04:21 ТЗ как параметр запроса. Что можно и что нельзя в запросе, где ТЗ является параметром.
05:32 ТЗ и построитель запросов
07:34 ТЗ и построитель отчетов
07:58 ТЗ и СКД
13:49 Заключение

источник

✍️ @odin1C_rus
17:00 05-02-2026
Пост удален
09:44 05-02-2026
Работа с файловой системой в языке 1С 8.3.

🔹Как записать произвольное значение в файл.

&НаСервере
Процедура ЧтениеИЗаписьФайловНаСервере()

// любое сериализуемое (то есть превращаемое
// в строку и обратно) значение можно сохранять
// в файл, например, массивы, списки значений, строки
// структуры и т.д.
Числа = Новый Массив;
Числа.Добавить(35);
Числа.Добавить(67);
ЗначениеВФайл("c:\числа.txt", Числа);
// эта функция работает только на сервере

🔹Как восстановить произвольное значение из файла в 1с 8.3

ЧислаИзФайла = ЗначениеИзФайла("c:\числа.txt");
Сообщить(ЧислаИзФайла[0]); // 35
Сообщить(ЧислаИзФайла[1]); // 67

🔹Работа с файловой системой в языке 1С 8.3.

/// Как записать текстовый файл в 1с 8.3

// работает как на сервере, так и на клиенте
Текст = Новый ЗаписьТекста(
"c:\привет.txt", // имя
КодировкаТекста.ANSI, // кодировка
Символы.ПС, // разделитель строк (необ.)
Ложь // перезаписывать файл, а не дописывать в конец (необ.)
);
Текст.ЗаписатьСтроку("Добро пожаловать!");
Текст.ЗаписатьСтроку("Посторонним вход воспрещен.");
Текст.Закрыть();

🔹Как прочитать текстовый файл в 1с 8.3

1C
// работает как на сервере, так и на клиенте
Текст = Новый ЧтениеТекста(
"c:\привет.txt", // имя
КодировкаТекста.ANSI, // кодировка
Символы.ПС, // разделитель строк (необ.)
,
Истина // монопольный режим (необ.)
);

// читаем пока есть что читать
Пока Истина Цикл
Строка = Текст.ПрочитатьСтроку();
Если Строка = Неопределено Тогда
Прервать;
Иначе
Сообщить(Строка);
КонецЕсли;
КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура ОперацииНадФайлами(Команда)

// для тестов создадим пустой файл

Текст = Новый ЗаписьТекста("c:\file_src.txt");
Текст.Закрыть();

✍️ @odin1C_rus
10:44 04-02-2026
Консоль кода для 1С 8.3 (Управляемые и обычные формы)

Для работы внутри 1С требуется версия платформы не ниже 8.3.14.1565

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

https://github.com/salexdv/bsl_console

✍️ @odin1C_rus
13:56 02-02-2026
Универсальные коллекции значений 1С
Ильяс Низамутдинов

Урок №1. Массивы
Урок №2. Структура
Урок №3. Соответствие
Урок №4. Список значений
Урок №5. Таблица значений
Урок №6. Дерево значений
Урок №7.Бинарный поиск по таблице значений 1С

источник

✍️ @odin1C_rus
09:28 30-01-2026
Шпаргалки 1с

Тип строка. Работа со строками
Тип число. Работа с числами
Тип дата. Работа с датами
Тип массив. Работа с коллекцией значений - использование массивов
Тип таблица значений. Работа с коллекцией значений - использование таблиц значений
Тип список значений. Работа с коллекцией значений - использование списков значений
Тип структура. Работа с коллекцией значений - использование структуры
Работа с реквизитами в 1с
Работа с кнопками в 1с
Логические и арифметические операции

источник

✍️ @odin1C_rus
08:00 29-01-2026
Свернуть таблицу значений в 1С: два способа

В этом видео я покажу вам два способа сворачивания таблицы значений на управляемой форме в 1С.

📌 Первый способ: сворачивание таблицы значений при контекстном вызове сервера – данные формы передаются на сервер, что позволяет получать доступ к данным формы в серверном контексте, но в тоже время утяжеляет вызов сервера.

📌 Второй способ: сворачивание таблицы на форме при бесконтекстном вызове сервера – данные формы не передаются на сервер, что облегчит вызов сервера, но в тоже время, информация на форме не будет доступна.

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

0:00:00 - Введение;
0:01:15 - Создаем таблицу значений на форме и команды для свёртки;
0:03:35 - Почему надо сворачивать таблицу значений на сервере;
0:06:14 - Первый способ - контекстный вызов сервера;
0:10:43 - Второй способ - безконтекстный вызов сервера.

источник

✍️ @odin1C_rus
09:41 26-01-2026
🤯 Решаем тестовую задачу из собеседования на должность 1С программиста.

Рассмотрим способ решения интересной тестовой задачи на вакансию 1С программиста. Задача одновременно проверяет знание запросов, СКД и в целом понимания что и откуда растет.

источник

✍️ @odin1C_rus
09:19 23-01-2026
5 примеров ошибок в коде, которые приводят к замедлению работы 1С

00:10 — Ошибка № 1. Блокировки и транзакции
03:22 — Ошибка № 2. Правила записи регистров
06:00 — Ошибка № 3. Что здесь не так?
08:33 — Ошибки при записи большого объема данных
12:59 — Ошибки при записи наборов.

источник

✍️ @odin1C_rus
09:34 22-01-2026
Индикатор прогресса в 1С (Прогресс-бар)

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

источник

✍️ @odin1C_rus
08:09 22-01-2026
Пост удален
13:09 20-01-2026
⚡ PostgreSQL + 1С: как находить «тихих убийц» производительности (без DBA и магии)

Иногда всё выглядит идеально:
✅ CPU норм
✅ мониторинг ровный
✅ жалоб нет
✅ slow query log пустой

…а потом наступает закрытие месяца и база начинает “умирать”.

Причина часто не в одном супер-медленном запросе, а в тысячах “почти нормальных” (2–30 секунд), которые суммарно жгут сервер сутками. Это и есть те самые тихие убийцы.


🧰 Что я использовал

- PostgreSQL 14 (сборка от 1С) на Linux
- 1С:Предприятие 8.3
- pgBadger - генератор отчётов по логам Postgres: красиво, наглядно, быстро

✅ Ключевой трюк: логирование “бережно”, но полезно

Чтобы не утонуть в логах, порог ставят не 200 мс, а 3 секунды, и уже потом постепенно снижают.

Пример настройки (идея):

- правильный log_line_prefix (нужен pgBadger)
- lc_messages = 'C' (английский язык сообщений)
- log_temp_files = 0 (ловим временные файлы)
- log_min_duration_statement = 3000 (стартуем аккуратно)



🐴 Реальный кейс: “Троянский конь” из БСП

Запрос уже оптимизировали, но он снова в топе.

Оказалось: после обновления БСП случайно активировали «Разделение данных» → платформа добавила реквизит ОбластьДанныхОсновныеДанные почти во все таблицы → таблицы раздулись, запросы замедлились.

И самый эффективный фикс оказался…
👉 отключить ненужный функционал, а не героически индексировать последствия.


📌 Ссылка на статью: https://habr.com/ru/articles/986306/

✍️ @odin1C_rus
09:55 19-01-2026
Асинхронные функции в 1С

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

автор: ironskills-1c

✍️ @odin1C_rus
22:36 15-01-2026
🚀 Как ускорить “тупой” запрос 1С в миллион раз без правок кода

Иногда в 1С прилетает “невинный” SQL, который внезапно начинает жечь прод: запрос выполняется 45 секунд, и таких - сотни раз в день 😬
Кейс из практики на Postgres (Tantor XData): нашли в топе долгих запросов вот такую красоту:

SELECT min(_period)
FROM _accumrg93090
WHERE _fld3457 = 0
AND _recordertref = ...
AND _recorderrref = ...
HAVING NOT min(_period) IS NULL;

🧠 Что происходило в 1С
Регламентное задание удаляло помеченные объекты, а БСП перед удалением делала стандартную проверку “Даты запрета изменений” - ищет минимальную дату движения документа по регистру накопления.

📉 Почему так медленно
Планировщик выбирал не тот индекс и делал огромный Index Only Scan, потому что статистика по полю _recorderrref была очень неточной (распределение “длинный хвост”: большинство регистраторов мелкие, но есть «тяжеловесы» на сотни тысяч строк).

В таблице:

• 761 млн строк
• _recorderrref ≈ 2.35 млн уникальных
• но планировщик “видел” всего 123 тыс 🤡

✅ Фикс без правки кода 1С - улучшили статистику точечно
В Tantor Postgres есть параметр STATMULTIPLIER, который увеличивает объём выборки для ANALYZE по конкретной колонке:

alter table _accumrg93090
alter column _RecorderRRef SET STATMULTIPLIER 15;

После пересчёта статистики план поменялся на правильный индекс (_accumrg93090_2), и время выполнения запроса стало… 0.017 ms 😳

🔥 Итог: ускорение примерно в 1 000 000 раз.

💡 Вывод для 1С-админов/DBA
Если на Postgres 1С внезапно “втыкает” на seemingly простых запросах, проверь:

• выбор индекса,
• актуальность статистики,
• перекос распределения по ссылочным полям (_recorderrref, _recordertref).

И да, иногда можно спасти производительность настройкой статистики, не трогая ни модуль 1С, ни БСП.

📌 Ссылка на статью: https://habr.com/ru/companies/tantor/articles/985130/

#1C #PostgreSQL #DBA #performance #оптимизация #БСП

✍️ @odin1C_rus
23:53 13-01-2026
Как перевести 40 распределенных баз 1С из MSSQL в PostgreSQL

Продолжаем публиковать некоторые детали проектов по миграции больших баз данных 1С с MS SQL Server на PostgreSQL. В прошлый раз речь шла о миграции только одной 10+ Тб базы данных 1С с MS SQL на PostgreSQL. Сегодня речь пойдет о проекте миграции на PostgreSQL сразу сорока с лишним распределенных информационных систем 1C с базами размером от 50 Гб до 2 Тб каждая.

https://habr.com/ru/companies/softpoint/articles/984716/

✍️ @odin1C_rus
23:30 12-01-2026
Быстрое объединение двух таблиц значений

Соединяет две разные таблицы значений с одинаковыми колонками в одну целую таблицу значений.
Способ интересен тем, что он вставляет одну таблицу в начало другой таблицы, а не добавляет строки из одной таблицы в конец другой.
Такой способ работает намного быстрее чем стандартный.

// Добавляет в начало первой ТЗ, значения из второй ТЗ, колонки обоих ТЗ должны совпадать
// Данный способ работает быстрее чем стандартный с добавлением в конец строк из другой ТЗ
// Подробности см. http://www.gilev.ru/простой-трюк-для-быстрого-объединени/
//
// Параметры:
// Таблица1 - ТаблицаЗначений - в эту таблицу, в начало (а не в конец) будут добавлены строки из Таблица2
// Таблица2 - ТаблицаЗначений - таблица, строками которой требуется дополнить значение из параметра Таблица1
//
Процедура ДополнитьТаблицуЗначениямиИзВторой(Таблица1, Таблица2) Экспорт

Для Индекс = 1 По Таблица2.Количество() Цикл
Таблица1.Вставить(0);
КонецЦикла;
Для Индекс = 0 По Таблица2.Колонки.Количество() - 1 Цикл
Таблица1.ЗагрузитьКолонку(Таблица2.ВыгрузитьКолонку(Индекс), Индекс);
КонецЦикла;

КонецПроцедуры


✍️ @odin1C_rus
09:32 05-01-2026
Печать своей печатной формы (без использования команды)

//////////////////////////////////////////////////// Кнопка вызова печати

МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(СсылкаНаДокументИлиСправочник);

ПараметрыПечать = Новый Структура;
ПараметрыПечать.Вставить("ЗаголовокФормы", СсылкаНаДокументИлиСправочник);

УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("ПУТЬ_К_МОДУЛЮ_МЕНЕДЖЕРА_ОБЪЕКТА_ПЕЧАТИ", "ИМЯ_МАКЕТА", МассивОбъектов, Неопределено, ПараметрыПечать);

//////////////////////////////////////////////////// Модуль менеджера объекта печати

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ИМЯ_МАКЕТА") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ИМЯ_МАКЕТА",
"СИНОНИМ_МАКЕТА",
ПечатнаяФорма(МассивОбъектов));
КонецЕсли;

КонецПроцедуры

Функция ПечатнаяФорма(МассивОбъектов)

ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИМЯ";

Макет = ПолучитьМакет("Макет");

ОбластьМакета = Макет.ПолучитьОбласть("ОсновнаяОбласть");

ТабличныйДокумент.Вывести(ОбластьМакета);

Возврат ТабличныйДокумент;

КонецФункции

✍️ @odin1C_rus
18:59 03-01-2026
Изменилось прикрепленное сообщение чата
18:59 03-01-2026
📌 Добро пожаловать в чат 1C программист!

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

Вступайте, общайтесь, решайте вопросы, помогайте другим.

https://max.ru/join/w5Xw4TXPvK2IE6irN3idsGgHoIzdId2s9d2yS89Q6_E
18:30 03-01-2026
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT
21:58 25-12-2025
Жизненный цикл объекта в 1С.

В 1С мы постоянно работаем с объектами - справочниками, документами, регистрами и т. д. Но многие разработчики не задумываются о том, как живёт объект в памяти, когда он загружается, сохраняется и уничтожается.

🔍 Как это работает?
1. Создание объекта
Когда мы пишем Справочники.Клиенты.НайтиПоКоду("123"), в памяти создаётся ссылка на объект, но сам объект ещё не загружен.

2. Загрузка в память
Если мы обратимся к свойству объекта (Справочники.Клиенты.НайтиПоКоду("123").Наименование), 1С загрузит объект в память и присвоит значение его свойствам.

3. Изменение и сохранение
Если объект загружен, мы можем менять его свойства и сохранять в базу методом Записать().

4. Удаление объекта из памяти
Если объект больше не используется, он удаляется сборщиком мусора (особенно если переменная, в которой он хранился, вышла из области видимости).

❗ Что важно учитывать?
- Чем больше объектов в памяти, тем медленнее работает система. Особенно актуально при загрузке больших массивов данных.
- Используйте обходные механизмы - например, итератор Выбрать(), а не НайтиПоКоду(), если нужно перебрать много элементов.
- Будьте осторожны с глобальными переменными - объект, сохранённый в глобальной области, останется в памяти на весь сеанс.

✍️ @odin1C_rus
21:01 23-12-2025
Где скачать 1С:БСП бесплатно

Хотите скачать 1С:БСП, но нет доступа к ИТС?
В этом видео покажу, где скачать 1С:БСП, не имея доступа к ИТС, без смс и регистрации :)

источник

✍️ @odin1C_rus
11:19 22-12-2025
Сегодня я покажу вам, как ускорить разработку в 1С с помощью горячих клавиш. Многие недооценивают их силу, а зря! Они способны сэкономить часы работы в течение недели.

Топ полезных горячих клавиш в 1С:
🔹 Ctrl + Shift + Q — быстрое переключение между конфигурацией и режимом предприятия. Это спасение, когда нужно часто тестировать изменения.
🔹 Ctrl + Space — автодополнение кода в модуле. Работает как в Visual Studio, только для 1С.
🔹 Ctrl + Shift + E — поиск метода, процедуры или функции в текущем модуле. Не нужно скроллить!
🔹 Alt + F5 — быстрое выполнение выделенного участка кода в отладчике.
🔹 Ctrl + / (на цифровой клавиатуре) — комментирование строк кода. Можно выделить несколько строк и закомментировать одним нажатием.
🔹 Ctrl + Shift + F — поиск во всех модулях конфигурации. Незаменимо, если ищете, где вызывается определенный метод.

Попробуйте внедрить эти сочетания в работу, и уже через неделю заметите, как стали работать быстрее! Какие горячие клавиши используете чаще всего? Пишите в комментариях! 🔥

✍️ @odin1C_rus
12:39 16-12-2025
Миникурс Разработка в 1С

источник

✍️ @odin1C_rus
10:01 14-12-2025
Асинх/Ждать в 1С для показа вопросов, сообщений и диалогов | Асинхронные методы в платформе 1C

00:00 - Вступление
05:11 - Почему лучше не использовать модальные окна в 1С
11:35 - Как переписать модальные окна 1С на ОписаниеОповещения
22:06 - Почему ОписаниеОповещения усложняет код 1С
31:50 - Как загружать файлы без расширения по работе с файлами (НачатьПомещениеФайлаНаСервер)
44:05 - Асинх и ждать в 1С (Платформа 1С 8.3.18)
53:44 - Как вывести прогресс загрузки файла в 1С
59:15 - Когда типовые 1С конфигурации перейдут на Асинх?
01:00:45 - В чем отличие от ДлительныеОперацииКлиент.ОжидатьЗавершение?
01:02:00 - Почему надо знать все 3 метода взаимодействия с пользователем
01:04:00 - Пример рефакторинга кода
01:06:45 - Книги для программистов, кто был вынужден стать менеджером
01:08:44 - Какие дополнительные компетенции нужно развивать
01:09:50 - Как Матвей попал в 1С разработку
01:12:00 - Планы на будущее
01:14:08 - Зачем преподавать
01:15:40 - Про дефицит кадров в 1С
01:17:00 - Какие качества нужны начинающему 1С разработчику
01:19:10 - Зарплата 1С программистов в регионах, что нужно знать джуну
01:26:56 - Как студенту стать 1С программистом и надо ли
01:37:58 - Как грузчику в 40 лет стать 1С программистом
01:43:33 - Что такое когнитивная и цикломатическая сложность?
01:46:00 - Выбор первого работодателя в 1С сфере
01:49:25 - Предвзятое отношение к 1С программистам
01:52:45 - Про 1С франчайзи
01:56:45 - Про 1С фреш и SQL
01:59:00 - Про 1С запросы, всякое и заключение

источник

✍️ @odin1C_rus
23:31 09-12-2025
Лайфхаки 1С

Основная таблица динамического списка задана неверно. Не задан ни текст запроса, ни основная таблица динамического списка.

источник

✍️ @odin1C_rus
07:07 07-12-2025
1С Групповое изменение реквизитов с помощью ИИ

Думаю, почти все специалисты 1С знают типовую обработку "Групповое изменение реквизитов". Она всем хороша, но уж очень много кликов. С помощью ИИ сведем весь пользовательский интерфейс к одному полю ввода.

На этом простом учебном примере я хочу показать вам что скрывается "под капотом" внедрения искусственного интеллекта в существующие бизнес-системы. Для работы нам понадобится бесплатная библиотека искусственного интеллекта для 1С

Итак, как я и обещал у нас с вами одно поле ввода, куда мы вводим в произвольной форме, на естественном языке где и что на что мы хотим поменять. На прочие поля (например, модель) не обращайте внимание, они нужны нам здесь для экспериментов. Если бы мы делали что-то подобное для реального использования, мы бы все лишнее убрали. Достаточно одного поля ввода и одной кнопки. Еще было бы прекрасно, если бы этой кнопкой был микрофончик. Ждем, когда в платформе появится аудиозапись, давно пора.

https://habr.com/ru/articles/877794/

✍️ @odin1C_rus
10:06 04-12-2025
1С использует КАЖДЫЙ ВТОРОЙ бизнес в России. Почему на рынке нет альтернатив?

Что такое 1С?
Почему 90% предприятий малого и 50% крупного и среднего бизнеса используют 1С?

Почему до сих пор НЕТ АЛЬТЕРНАТИВ и не будет?
Давайте разбираться

https://habr.com/ru/companies/femida_search/articles/972176/

✍️ @odin1C_rus
12:23 01-12-2025
Доработка распределения косвенных расходов в 1С: Бухгалтерии предприятия

Рассказали в статье - как доработать распределение косвенных расходов в 1С:Бухгалтерии предприятия для использования динамичной базы без изменения учетной политики
В 1С:Бухгалтерии базой для распределения косвенных расходов могут быть:

- Объем выпуска
- Плановая себестоимость выпуска
- Оплата труда
- Материальные затраты
- Выручка от реализации услуг
- Прямые затраты
- Отдельные статьи прямых затрат

Собственная база распределения (произвольные показатели, описывающие деятельность предприятия)

https://habr.com/ru/articles/971812/

✍️ @odin1C_rus
07:25 28-11-2025
Условие в виртуальной таблице 1C

Волею судеб мне по работе пришлось посмотреть несколько занятий по подготовка к сертификации 1С:Специалист.

И от одного лектора вдруг услышал, что использование в условиях виртуальной таблицы массивов, когда можно применить таблицу, - это плохо и медленно. А на сомнения слушателя он ответил: «Я гарантирую это». Думаю, ошибается человек, чего не бывает. И тут в другом занятии другой лектор говорит то же самое.

Тут уже волей-неволей задумаешься: а вдруг я чего не помню уже? Но ведь не раз ускорял запросы, меняя таблицы на массивы.

https://habr.com/ru/companies/T1Holding/articles/970234/

✍️ @odin1C_rus
19:30 26-11-2025
Фишки и лайфхаки 1С: Свойство кнопки "Пометка"

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

автор: PelageyaPrime

✍️ @odin1C_rus
07:20 24-11-2025
Ошибка в 1С 8.3: Файл базы данных поврежден

Ошибка 1С «файл базы данных поврежден» встречается время от времени у многих пользователей 1С 8.3. Причин может быть множество: отключение света, некорректное выключение компьютера, с базой данных по локальной сети работает более одного пользователя, большой размер файловой базы данных и т.д. Как правило ошибка 1С 8.3 такого рода встречается в файловых базах данных. Первым делом нужно внимательно посмотреть, какой именно файл поврежден – тут возможны варианты.

1. Файл 1CD
Чаще всего бывает поврежден файл 1CD. Это файл базы данных непосредственно. Эта ошибка базы 1С говорит о том, что повреждена какая-то часть базы или таблицы, или сами данные. Поэтому любая попытка починить базу, скорее всего, будет сопровождаться частичной потерей данных. Самый лучший вариант – восстановить базу из резервной копии, если она есть. Если копии нет, тогда база чинится только утилитой chdbfl. Утилита эта входит в поставку программы и находится в папке bin вашей платформы 1С 8.3. Вот примерный путь:

Запускаете утилиту, указываете путь к базе данных. Путь к базе данных можно найти в окне запуска снизу или по кнопке Изменить в поле «Каталог информационной базы» 1С.

Обязательно ставите галку «Исправлять обнаруженные ошибки». Затем нажимаете кнопку «Выполнить».

При работе этой утилиты никто не должен работать в базе. Всех пользователей нужно попросить выйти.

Далее после проведения тестирования утилитой chdbfl имеет смысл провести Тестирование и исправление. Для этого нужно запустить базу в режиме конфигуратора и пройти Администрирование-Тестирование и исправление. Расставляем галки и точки как на картинке.

Чуть более подробно про тестирование и исправление. Много споров о том, как правильно заполнять 2 последних пункта – «При наличии ссылок на несуществующие объекты» и «При частичной потере данных объектов». Я ставлю «Очищать ссылки» и «Удалять объекты», потому что при выборе пункта «Создавать объекты» база попытается создать объект, данных для которого у нее нет. То есть это будет пустой объект с кодом вида F000000001, в котором не будут заполнены даже стандартные реквизиты.

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

2. Повреждение файлов кеша
Второй случай ошибки «Файл базы данных поврежден» встречается реже, но решается проще. Когда ошибка указывает на поврежденный файл 1С в папке AppData с непроизносимым цифро-буквенным названием, это говорит о повреждении файлов кеша. Как правило ошибка вылетает только у одного пользователя. Чтобы исправить ошибку нужно пройти по указанному пути и удалить папку с цифро-буквенным названием. Вот пример расположения файла.

✍️ @odin1C_rus
20:19 21-11-2025
Передача данных между формами в 1С

источник

✍️ @odin1C_rus
11:07 20-11-2025
👩‍💻 Пример скрипта, который проверяет наличие зарегистрированных COM-объектов в системе для платформы 8.2 и 8.3.

Проверяются только компоненты, зарегистрированные по стандартному имени.

try {
$v83COMConnector = New-Object -COMObject "V83.COMConnector"
Write-Host "Компонента "V83.COMConnector" зарегистрирована и готова к использованию." -ForegroundColor Green;
}
catch {
Write-Host "Компонента "V83.COMConnector" не зарегистрирована." -ForegroundColor Red;
}

try {
$v82COMConnector = New-Object -COMObject "V82.COMConnector"
Write-Host "Компонента "V82.COMConnector" зарегистрирована и готова к использованию." -ForegroundColor Green;
}
catch {
Write-Host "Компонента "V82.COMConnector" не зарегистрирована." -ForegroundColor Red;
}


✍️ @odin1C_rus
10:08 16-11-2025
Настройка работы 1С Предприятия 8.3 с использованием PostgreSQL в среде Linux

✍️ @odin1C_rus
08:36 14-11-2025
Новое в платформе 8.3.27 от Ингвара

1С:Предприятие 8.3
Новое в версии 8.3.27
Специально для 1С программистов

0:23 Введение
4:31 Общее
5:31 Базовая версия
5:53 Клиентское приложение
9:17 Конфигуратор
11:15 Кластер
17:41 Внешние компоненты
19:26 Средства администрирования
21:24 Прикладные объекты
25:08 Регистр сведений
31:59 СУБД
32:57 Полнотекстовый поиск
34:16 СКД и Табличный документ
36:46 WebSocket
1:09:42 Работа с криптографией
1:13:41 Распознавание речи
1:14:01 Система взаимодействия
1:15:50 Дата акселератор
1:16:34 Копии базы данных
1:17:23 Хранилище двоичных данных
1:22:23 Заключение

источник

✍️ @odin1C_rus
10:12 12-11-2025
Консоль кода для 1С 8.3 (Управляемые и обычные формы)

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

https://github.com/salexdv/bsl_console

✍️ @odin1C_rus
09:49 10-11-2025
Чтение файла в формате XML по порядку (способ №2) в 1С 8.3

//Подходит для файлов более 100Mb
&НаСервере
Процедура ПрочитатьФайлXMLПоПорядкуСпособ2(ПутьКФайлу)

XML = Новый ЧтениеXML;
XML.ОткрытьФайл(ПутьКФайлу);

СписокИмен = Новый СписокЗначений;

Пока XML.Прочитать() Цикл
Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

СписокИмен.Добавить(XML.Имя);
ПутьXML = СобратьПуть(СписокИмен);

Если ПутьXML = "/Рестораны/Ресторан" Тогда
Название = XML.ЗначениеАтрибута("Название");
Если Название <> Неопределено Тогда
Сообщить("Название ресторана: " + Название);//"Китайская грамота"
КонецЕсли;

Категория = XML.ЗначениеАтрибута("Категория");
Если Категория <> Неопределено Тогда
Сообщить("...наценочная категория ресторана: " + Категория);// Высшая
КонецЕсли;

Счет = XML.ЗначениеАтрибута("Счет");
Если Счет <> Неопределено Тогда
Сообщить("...средний счет ресторана: " + Счет);// 3500
КонецЕсли;

Кухня = XML.ЗначениеАтрибута("Кухня");
Если Кухня <> Неопределено Тогда
Сообщить("...кухня ресторана: " + Кухня);// Азиатская
КонецЕсли;

ИначеЕсли ПутьXML = "/Рестораны/Ресторан/Меню" Тогда

Сообщить("Меню:");

ИначеЕсли ПутьXML = "/Рестораны/Ресторан/Меню/Блюдо" Тогда

Название = XML.ЗначениеАтрибута("Название");
Если Название <> Неопределено Тогда
Сообщить("...название блюда: " + Название);
КонецЕсли;

ИначеЕсли ПутьXML = "/Рестораны/Ресторан/Описание" Тогда

XML.Прочитать();
Если XML.ТипУзла = ТипУзлаXML.Текст Тогда
Сообщить("Описание: " + XML.Значение);
КонецЕсли;

КонецЕсли;

ИначеЕсли XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда

СписокИмен.Удалить(СписокИмен.Количество() - 1);

КонецЕсли;

КонецЦикла;

XML.Закрыть();

КонецПроцедуры

&НаСервере
Функция СобратьПуть(СписокИмен)

НашПуть = "";

Для Каждого Имя Из СписокИмен Цикл
НашПуть = НашПуть + "/" + Имя;
КонецЦикла;

Возврат НашПуть;

КонецФункции

✍️ @odin1C_rus
09:31 06-11-2025
Ускорение и оптимизация 1С. Базовый курс

5 примеров ошибок в коде, которые приводят к замедлению работы 1С
Почему документ с одной строкой проводится 7,5 секунд
Как исправить ошибку при запуске после внедрения подсистемы Оценка производительности из БСП
Как ускорить процесс реструктуризации и обновления 1С в разы
3 принципа работы блокировок, о которых стоит знать каждому программисту 1С
Как «поймать» медленные запросы

Все видео на youtube https://www.youtube.com/playlist?list=PLBzoXhN_kiSymyjw54twUGtsR6HP28FZ0

✍️ @odin1C_rus
08:23 05-11-2025
Немного юмора )

✍️ @odin1C_rus
07:49 29-10-2025
Консоль кода для 1С 8.3 (Управляемые и обычные формы)

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

https://github.com/salexdv/bsl_console

✍️ @odin1C_rus
08:16 27-10-2025
Чтение файла в формате XML по порядку (способ №2) в 1С 8.3

//Подходит для файлов более 100Mb
&НаСервере
Процедура ПрочитатьФайлXMLПоПорядкуСпособ2(ПутьКФайлу)

XML = Новый ЧтениеXML;
XML.ОткрытьФайл(ПутьКФайлу);

СписокИмен = Новый СписокЗначений;

Пока XML.Прочитать() Цикл
Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

СписокИмен.Добавить(XML.Имя);
ПутьXML = СобратьПуть(СписокИмен);

Если ПутьXML = "/Рестораны/Ресторан" Тогда
Название = XML.ЗначениеАтрибута("Название");
Если Название <> Неопределено Тогда
Сообщить("Название ресторана: " + Название);//"Китайская грамота"
КонецЕсли;

Категория = XML.ЗначениеАтрибута("Категория");
Если Категория <> Неопределено Тогда
Сообщить("...наценочная категория ресторана: " + Категория);// Высшая
КонецЕсли;

Счет = XML.ЗначениеАтрибута("Счет");
Если Счет <> Неопределено Тогда
Сообщить("...средний счет ресторана: " + Счет);// 3500
КонецЕсли;

Кухня = XML.ЗначениеАтрибута("Кухня");
Если Кухня <> Неопределено Тогда
Сообщить("...кухня ресторана: " + Кухня);// Азиатская
КонецЕсли;

ИначеЕсли ПутьXML = "/Рестораны/Ресторан/Меню" Тогда

Сообщить("Меню:");

ИначеЕсли ПутьXML = "/Рестораны/Ресторан/Меню/Блюдо" Тогда

Название = XML.ЗначениеАтрибута("Название");
Если Название <> Неопределено Тогда
Сообщить("...название блюда: " + Название);
КонецЕсли;

ИначеЕсли ПутьXML = "/Рестораны/Ресторан/Описание" Тогда

XML.Прочитать();
Если XML.ТипУзла = ТипУзлаXML.Текст Тогда
Сообщить("Описание: " + XML.Значение);
КонецЕсли;

КонецЕсли;

ИначеЕсли XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда

СписокИмен.Удалить(СписокИмен.Количество() - 1);

КонецЕсли;

КонецЦикла;

XML.Закрыть();

КонецПроцедуры

&НаСервере
Функция СобратьПуть(СписокИмен)

НашПуть = "";

Для Каждого Имя Из СписокИмен Цикл
НашПуть = НашПуть + "/" + Имя;
КонецЦикла;

Возврат НашПуть;

КонецФункции

✍️ @odin1C_rus
12:30 25-10-2025
Как «поймать» медленные запросы

00:00 — Введение
00:57 — Обзор инструментов поиска медленных запросов
03:02 — Схема установки базы Монитор
05:33 — Создание отдельного кластера и базы для загрузки Монитора
06:45 — Подключение созданной базы и загрузка конфигурации Монитор
07:38 — Настройка мониторинга запросов
19:29 — Пример анализа запроса из медленного отчета
23:01 — Настройка отображения запросов в терминах метаданных
25:03 — Анализ параметров и просмотр плана запроса
26:00 — Пример запроса без контекста
26:45 — Подведение итогов первого занятия

источник

✍️ @odin1C_rus
07:13 23-10-2025
Ускорение и оптимизация 1С. Базовый курс

5 примеров ошибок в коде, которые приводят к замедлению работы 1С
Почему документ с одной строкой проводится 7,5 секунд
Как исправить ошибку при запуске после внедрения подсистемы Оценка производительности из БСП
Как ускорить процесс реструктуризации и обновления 1С в разы
3 принципа работы блокировок, о которых стоит знать каждому программисту 1С
Как «поймать» медленные запросы

Все видео на youtube

✍️ @odin1C_rus
23:01 21-10-2025
1С: Администрирование

Установка и публикация базы 1С на IIS под ОС Windows 10/11
Присоединение базы 1C без лога к MS SQL 2019
Восстановление нестандартного бэкапа 1С из PostgreSQL. *.sql *.psql

источник

✍️ @odin1C_rus