1С:Предприятие 8
880 subscribers
108 photos
288 videos
110 links
🔥 Разработка в 1С — просто и понятно! 🔥

Полезные фишки и лайфхаки для разработчиков
Объяснение сложных тем простыми словами
Готовые решения, сниппеты и примеры кода
Разбор ошибок и способов их устранения
Новости и тренды в мире 1С
Download Telegram
Терминальная ферма 1C на x2go

Итак, импортозамещение катится по стране неостановимым катком. Внесём свой посильный вклад.

Под давлением обстоятельств нам пришлось сделать терминальную ферму на ОС REDOS и x2go (из комплекта поставки ОС). В принципе, решение получилось рабочим, с небольшими особенностями.

В статье простыни ansible playbooks и более ничего.

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

👉@DevLab1C
🔥3
Шаблоны кода Формат Суммы (Числа) в 1С 8.3


&НаКлиенте
Процедура ФорматированиеСуммы(Команда)

// Отображение общего числа цифр
Сообщить(Формат(138, "ЧЦ=3")); // 138
Сообщить(Формат(138, "ЧЦ=2")); // 99
Сообщить(Формат(138, "ЧЦ=1")); // 9

// Отображение общего числа цифр после запятой
Сообщить(Формат(138.214, "ЧДЦ=2")); // 138.21
Сообщить(Формат(138.214, "ЧДЦ=1")); // 138.2
Сообщить(Формат(138.214, "ЧДЦ=0")); // 138

// Сдвиг разрядов числа
Сообщить(Формат(7, "ЧС=5")); // 0,00007
Сообщить(Формат(7, "ЧС=1")); // 0,7
Сообщить(Формат(7, "ЧС=-3")); // 7000

// Установка разделителя целой и дробной части
Сообщить(Формат(138.21, "ЧРД=-")); // 138-21

// Установка разделителя групп
Сообщить(Формат(500000000, "ЧРГ=*")); // 500*000*000

// Вывод нулевого представления числа
Сообщить(Формат(0, "ЧН=ноль")); // ноль

// Вывод лидирующих нулей
Сообщить(Формат(138, "ЧЦ=10; ЧВН=")); // 0 000 000 138
Сообщить(Формат(7, "ЧЦ=2; ЧВН=")); // 07

// Отключение группировки разрядов при выводе числа
Сообщить(Формат(3000000, "ЧГ=0")); // 3000000
Сообщить(Формат(3000000, "ЧГ=3,0")); // 3 000 000
Сообщить(Формат(3000000, "ЧГ=3,2,0")); // 30 00 000

// Представление числа прописью
Сообщить(ЧислоПрописью(138.21)); // Сто тридцать восемь 21

// Рубли-копейки (Сто тридцать восемь рублей 21 копейка)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="rouble,roubles,kopeck,kopecks,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="карбованець,карбованцi,карбованцiв,м,копiйка,копiйки,копiйок,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="rublis,rubli,rublu,v,kapeika,kapeiki,kapeiku,s,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="rubla,ruble,f,copeica,copeici,f,2";//по-румынски
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="рубла,рубли,ж,копейка,копейки,ж,2";//по-болгарски

// Доллары-центы (Сто тридцать восемь долларов США 21 цент)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="доллар,доллара,долларов,м,цент,цента,центов,м,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="dollar,dollars,cent,cents,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="долар,долара,доларiв,м,цент,цента,центiв,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="dolars,dolari,dolaru,v,cent,centi,centu,v,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="dolar,dolari,m,cent,centi,m,2";//по-румынски
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="долар,долара,м,цент,цента,м,2";//по-болгарски

// Евро-евроценты (Сто тридцать восемь евро 21 евроцент)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="евро,евро,евро,м,евроцент,евроцента,евроцентов,м,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="euro,euros,eurocent,eurocents,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="євро,євро,євро,м,євроцент,євроцента,євроцентів,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="eiro,eiro,eiro,v,cents,centi,centi,v,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="euro,euro,м,eurocent,eurocenti,м,2";//по-румынскимммм
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="евро,евро,с,евроцент,евроцента,м,2";//по-болгарски

Сообщить(ЧислоПрописью(138.21, ФСтр, ПарПИ));

// Килограммы-граммы (Сто тридцать восемь килограммов 210 грамм)
Сообщить(ЧислоПрописью(138.21, "Л=ru_RU; ДП=Истина", "килограмм, килограмма, килограммов, м, грамм, грамма, граммов, м, 3"));

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


👉@DevLab1C
🔥2👍1👻1
Media is too big
VIEW IN TELEGRAM
Доработка 1С. Запрет редактирования проведенных документов

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

источник

👉@DevLab1C
🔥3👍1👻1
Media is too big
VIEW IN TELEGRAM
Интервью с разработчиком 1С - оценка технических компетенций.

В этом выпуске независимый HR IT Capital Анна Степанян совместно с Павлом Чистовым, преподавателем-методистом Фирмы "1С", провели живое интервью с разработчиком 1С, действующим сотрудником Фирмы "1С" Прокуровским Алексеем.

источник

👉@DevLab1C
🔥2👍1
Помогаторы разработчика 1С

Данная статья написана по моему выступлению на Infostart Event 2022, на котором я рассказал об инструментах и «лайфхаках», которые использую в своей работе и которые, как мне кажется, помогают сделать работу разработчика 1С проще, удобнее, а главное, эффективней. Многие вещи, возможно, покажутся вам очевидными или совсем простыми. Но часто я вижу, что разработчики пренебрегают ими, а ведь именно такие «мелочи» и делают нашу жизнь проще.

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

👉@DevLab1C
🔥2👍1
Media is too big
VIEW IN TELEGRAM
Как «поймать» медленные запросы

В этом видео мы за полчаса разберём, как диагностировать проблемные места – первый шаг к быстрым запросам ; )

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

источник

👉@DevLab1C
🔥5👍1
Media is too big
VIEW IN TELEGRAM
1С: БСП. Версионирование объектов. Сравниваем версии

На днях прилетела интересная задачка от клиента. Как то так произошло (намеренно или случайно), что некоторые документы стали распроведенными. И теперь для того, чтобы их вычислить нужно сравнить 2 версии документа. Последнюю и предпоследнюю. Текущую и предыдущую. Кому как нравиться

источник

👉@DevLab1C
🔥2👍1
Media is too big
VIEW IN TELEGRAM
Ошибки работы с объектами

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

источник

👉@DevLab1C
👍2🔥1
Ускорение обработки данных в 1С

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


&НаСервере
Процедура ДлительнаяОперация()

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

Для Каждого Ссылка Из МассивОбъектов Цикл

ОбработатьОбъект(Ссылка);

КонецЦикла;

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


&НаКлиенте
Процедура ЗапуститьДлительнуюОперацию(Команда)

ДлительнаяОперация();

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


У меня операция занимает 15 сек.

Создаем процедуру ЗапуститьДлительнуюОперациюНаСервере(), в которой получим массив объектов и разделим его на несколько частей, на каждую часть массива создадим фоновое задание.


&НаКлиенте
Процедура ЗапуститьДлительнуюОперацию(Команда)

ЗапуститьДлительнуюОперациюНаСервере();

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

&НаСервере
Процедура ЗапуститьДлительнуюОперациюНаСервере()

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

МассивЧастейОбъектов = Новый Массив;

КолЭлементов = Цел(МассивОбъектов.Количество() / 3);

ЧастьОбъектов = Новый Массив;

Для Индекс = 0 По МассивОбъектов.ВГраница() Цикл

Если ЧастьОбъектов.Количество() >= КолЭлементов Тогда
МассивЧастейОбъектов.Добавить(ЧастьОбъектов);
ЧастьОбъектов = Новый Массив;
КонецЕсли;

ЧастьОбъектов.Добавить(МассивОбъектов.Получить(Индекс));

КонецЦикла;

Если ЧастьОбъектов.Количество() > 0 Тогда
МассивЧастейОбъектов.Добавить(ЧастьОбъектов);
КонецЕсли;

Для Каждого ЧастьОбъектов Из МассивЧастейОбъектов Цикл
ПараметрыВыполнения = Новый Массив;
ПараметрыВыполнения.Добавить(ЧастьОбъектов);

ФоновыеЗадания.Выполнить("СвойОбщийМодуль.ДлительнаяОперация", ПараметрыВыполнения, Новый УникальныйИдентификатор);
КонецЦикла;

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


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


Процедура ДлительнаяОперация(ЧастьОбъектов) Экспорт

Для Каждого Объект Из ЧастьОбъектов Цикл
ОбработатьОбъект(Объект);
КонецЦикла;

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


В результате время на операцию занимает меньше секунды.

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

👉@DevLab1C
👍2🔥1
1С: Приемы разработки

Основы использования таблиц значений
Первое внедрение БСП 3.1
Регулярные выражения на каждый день
Шаблоны регулярных выражений для начинающих
Использование рекурсии на деревьях значений
Рекурсия без рекурсии Сложная рекурсия
Восходящая и нисходящая рекурсии
Особенности построения рекурсии
Использование двоичных деревьев для поиска
Балансировка и практика применения деревьев

источник

👉@DevLab1C
🔥3👍1
1С: Администрирование

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

источник

👉@DevLab1C
🔥3👍1