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

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

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

источник

👉@DevLab1C
🔥2👍1
1С: Программное получение структуры подчиненности

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

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

Рассматриваем на примере 1С: УНФ 3.0 (одна из наиболее простых конфигураций).

Стоит начать с того, что под капотом структура подчиненности работает на базе объектов конфигурации «Критерии отбора»

Далее

👉@DevLab1C
🔥2👍1
Media is too big
VIEW IN TELEGRAM
Отладчик 1С за 10 минут

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

источник

👉@DevLab1C
👍3🔥3
🚀 Подборка полезных 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 и др.
https://max.ru/tipsysdmin Типичный Сисадмин

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

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование 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 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
👍1🌭1
Видео для подготовки к Аттестации 1С:Специалист-Консультант по производству и ремонтам в 1С:ERP 2.5

Ключевые изменения в 1С:ERP 2.5.7 по производственному учету – за 15 минут
За что получают двойки на Аттестации по производству и ремонтам в 1C:ERP 2.5?
Как правильно реагировать на ошибки системы – на примере Аттестации Специалист-консультант по 1С:ERP
Ремонт оборудования заказчика в 1С:ERP 2.5 – схема учета для Аттестации и проектов за 20 минут
Объекты возникновения затрат (ОВЗ) в 1С:ERP 2.5.7 – разбираем новый функционал на практике

источник

👉@DevLab1C
👍3🔥21
Media is too big
VIEW IN TELEGRAM
Оптимизация производительности ERP 2.5.14

Ромайкина А. В., руководителя группы разработки, фирма "1С"

источник

👉@DevLab1C
👍2🔥2
Media is too big
VIEW IN TELEGRAM
1С:Разработка — Сдвиг индексов

На данном занятии мы рассмотрим нюансы чтения и записи данных в регистр сведений на примере взаимного смещения записей. Затронем тему объектной модели чтения данных и с помощью механизма запрос.

источник

👉@DevLab1C
👍2🔥1
🚀 Подборка полезных 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 и др.
https://max.ru/tipsysdmin Типичный Сисадмин

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

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

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование 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 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
Media is too big
VIEW IN TELEGRAM
1С: Схема запроса. Простейший практический пример

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

источник

👉@DevLab1C
👍3🔥2
Копирование всех файлов из одного каталога в другой в 1С 8.3


Процедура СкопироватьФайлы(Знач КаталогИсточник, Знач КаталогПриемник)

Попытка
//Проверим и поправим окончания пути каталогов
Если Прав(КаталогИсточник, 1) <> "\" Тогда
КаталогИсточник = КаталогИсточник + "\";
КонецЕсли;
Если Прав(КаталогПриемник, 1) <> "\" Тогда
КаталогПриемник = КаталогПриемник + "\";
КонецЕсли;

//Создадим каталог приемник
СоздатьКаталог(КаталогПриемник);
МассивФайлов = НайтиФайлы(КаталогИсточник, "*.*", Истина);

Для Каждого Файл Из МассивФайлов Цикл
ПолноеИмяИсточник = Файл.ПолноеИмя;
ПолноеИмяПриемник = КаталогПриемник + СтрЗаменить(Файл.ПолноеИмя, КаталогИсточник, "");

Если ПустаяСтрока(Файл.Расширение) Тогда
СоздатьКаталог(ПолноеИмяПриемник);
Иначе
КопироватьФайл(ПолноеИмяИсточник, ПолноеИмяПриемник);
КонецЕсли;
КонецЦикла;
Исключение
ИнфоОбОшибке = "Ошибка при копировании: " + ОписаниеОшибки()
+ " (из каталога: " + КаталогИсточник
+ "; в каталог: " + КаталогПриемник + ")";
Если ВыдаватьСообщения Тогда
Сообщить(ИнфоОбОшибке);
Иначе
Предупреждение(ИнфоОбОшибке);
КонецЕсли;

КонецПопытки;

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


👉@DevLab1C
👍21
Media is too big
VIEW IN TELEGRAM
5 примеров ошибок в коде, которые приводят к замедлению работы 1С

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

источник

👉@DevLab1C
👍3🔥2
Media is too big
VIEW IN TELEGRAM
Почему документ с одной строкой проводится 7,5 секунд

В этом видео покажем, как точно определить, что причина медленного выполнения операций не в «железе».

0:00 — Введение
0:22 — Пример медленно выполняемой операции
1:06 — Анализ причин замедления со стороны ПО
1:30 — Анализ причин замедления со стороны железа
7:23 — Выяснение истинной причины замедления: железо или код
8:40 — Поиск неоптимальных запросов через инструмент «Монитор»
11:12 — Поиск неоптимальных запросов через Microsoft SQL Server Management Studio
14:35 — Анализ производительности железа в связке с установленным ПО

источник

👉@DevLab1C
👍2🔥1
Создание записи в регистре сведений без привязки к документу в 1С 8.3


&НаСервере
Процедура СозданиеЗаписиБезПривязкиКДокументу()

// Создание записи в регистре сведений без привязки к документу можно только для регистров,
// в свойствах которых установлен режим записи "Независимый".

// Создание записи - для единичных записей лучше использовать "Менеджер Записей"
НоваяЗапись = РегистрыСведений.КурсВалют.СоздатьМенеджерЗаписи();
НоваяЗапись.Период = '20200401';
НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию("Евро");
НоваяЗапись.Курс = 2.8010;
НоваяЗапись.Записать(Истина); // Замещение - если уже есть запись с такими же измерениями и таким же периодом


// Поиск, изменение и удаление созданной запись на дату
Выборка = РегистрыСведений.КурсВалют.Выбрать('20200401', '20200401');
Если Выборка.Следующий() Тогда

Запись = Выборка.ПолучитьМенеджерЗаписи();
Запись.Прочитать();
Запись.Курс = 2.8020;// Изменение курса Евро
Запись.Записать(Истина);// Запись курса Евро
Запись.Удалить();// Удаление курса Евро

КонецЕсли;

// Для группового изменения записей лучше использовать "Набор Записей"
Евро = Справочники.Валюты.НайтиПоНаименованию("Евро");

НаборЗаписей = РегистрыСведений.КурсВалют.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Валюта.Установить(Евро);

Запись_1 = НаборЗаписей.Добавить();
Запись_1.Период = '20200401'; // 01 апреля 2020 г.
Запись_1.Валюта = Евро;
Запись_1.Курс = 2.8446;

Запись_2 = НаборЗаписей.Добавить();
Запись_2.Период = '20200402'; // 02 апреля 2020 г.
Запись_2.Валюта = Евро;
Запись_2.Курс = 2.8478;

Запись_3 = НаборЗаписей.Добавить();
Запись_3.Период = '20200403'; // 03 апреля 2020 г.
Запись_3.Валюта = Евро;
Запись_3.Курс = 2.8320;

Запись_4 = НаборЗаписей.Добавить();
Запись_4.Период = '20200404'; // 04 апреля 2020 г.
Запись_4.Валюта = Евро;
Запись_4.Курс = 2.7943;

Запись_5 = НаборЗаписей.Добавить();
Запись_5.Период = '20200405'; // 05 апреля 2020 г.
Запись_5.Валюта = Евро;
Запись_5.Курс = 2.7797;


// Запись сразу всего набора
НаборЗаписей.Записать(Истина); // Замещение - если уже есть запись с такими же измерениями и таким же периодом

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


👉@DevLab1C
👍21🔥1
Использование рекурсии в 1С. Понятие рекурсии в 1С.

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

Из определения рекурсии следует вывод, что во избежание бесконечного увеличения стека вызовов, необходимо предусмотреть условие выхода – условие, при котором очередной рекурсивный вызов не произойдет, что положит начало «заворачиванию» стека, по окончании которого получим конечный результат.

&НаКлиенте

Процедура Сосчитать(Команда)

СчетДоДесяти(Число);

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



Процедура СчетДоДесяти(НачальноеЧисло)

Если НачальноеЧисло <= 10 Тогда

Сообщить(Строка(НачальноеЧисло));

НачальноеЧисло = НачальноеЧисло + 1;

СчетДоДесяти(НачальноеЧисло);

Иначе //выход из рекурсии

Сообщить("Счет окончен.");

Возврат;

КонецЕсли;

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


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

Такой счет до десяти – пример линейной рекурсии в 1С. То есть каждый очередной вызов процедуры инициирует лишь один рекурсивный вызов или при выполнении условия выхода не инициирует вовсе.

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


Функция ПолучитьЧислоРядаФибоначчиПоНомеру(НомерЧислаВРяду)

Если НомерЧислаВРяду < 2 Тогда

Возврат НомерЧислаВРяду;

КонецЕсли;



Возврат ПолучитьЧислоРядаФибоначчиПоНомеру(НомерЧислаВРяду - 1) + ПолучитьЧислоРядаФибоначчиПоНомеру(НомерЧислаВРяду - 2)

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



&НаКлиенте

Процедура Фибоначчи(Команда)

Сообщить(ПолучитьЧислоРядаФибоначчиПоНомеру(Число));

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

👉@DevLab1C
🔥2👍1