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

Полезные фишки и лайфхаки для разработчиков
Объяснение сложных тем простыми словами
Готовые решения, сниппеты и примеры кода
Разбор ошибок и способов их устранения
Новости и тренды в мире 1С
Download Telegram
Media is too big
VIEW IN TELEGRAM
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 Типичный Сисадмин

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

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

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

источник

👉@DevLab1C
🔥3👍2
Media is too big
VIEW IN TELEGRAM
Добавление новой печатной формы в типовую конфигурацию 1С

источник

👉@DevLab1C
🔥4👍1
Два способа, как заполнить таблицу значений 1с по колонкам

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

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

https://telegra.ph/Dva-sposoba-kak-zapolnit-tablicu-znachenij-1s-po-kolonkam-06-03

👉@DevLab1C
🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Передача данных в отбор динамического списка 1С

источник

👉@DevLab1C
👍3🔥2
Media is too big
VIEW IN TELEGRAM
Передача данных между формами в 1С

источник

👉@DevLab1C
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Как удалить документы из базы выборочно за период 2023? Внимание! Инструмент для крайних целей!

Как удалить документы из базы выборочно за период в 1С? Получение объекта и его удаление. Удаление объекта из базы нарушает ссылочную целостность. Необходимо применять для решения нетривиальных задач. Например, при свертке базы.

источник

👉@DevLab1C
👍2🔥1
Media is too big
VIEW IN TELEGRAM
Как пользоваться циклом Для каждого на примере расчета суммы всего документа.

Как посчитать сумму всего документа с помощью цикла. Чем отличается процедура "Обработка проведения" от "Перед записью". Синтаксис цикла "Для каждого".

источник

👉@DevLab1C
🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Разбор кода. Запись данных из таблицы значений в документ


источник

👉@DevLab1C
🔥2👍1
Настройка параметров события Доступ/Отказ в доступе в журнале регистрации в 1С 8.3

&НаСервере
Процедура НастройкаПараметровДоступаКСправочнику()

Спр_Контрагенты = Новый ОписаниеИспользованияСобытияДоступЖурналаРегистрации();
// Объект, доступ к которому будет регистрироваться
Спр_Контрагенты.Объект = "Справочник.Контрагенты";
// Поля доступа:
Спр_Контрагенты.ПоляДоступа.Добавить("УНП");
Спр_Контрагенты.ПоляДоступа.Добавить("Адрес.ЮрАдрес");//Табл.часть
// Поля регистрации:
Спр_Контрагенты.ПоляРегистрации.Добавить("УНП");
Спр_Контрагенты.ПоляРегистрации.Добавить("Адрес.ПочтАдрес");//Табл.часть

АльтерПолей = Новый Массив();
АльтерПолей.Добавить("Страна");
АльтерПолей.Добавить("Область");
АльтерПолей.Добавить("Район");

// Для настройки объекта метаданных
Спр_Контрагенты.ПоляРегистрации.Добавить(АльтерПолей);
НастройкаМетаданных = Новый Массив();
НастройкаМетаданных.Добавить(Спр_Контрагенты);

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

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

Спр_Контрагенты = Новый ОписаниеИспользованияСобытияОтказВДоступеЖурналаРегистрации();
// Объект, доступ к которому будет регистрироваться
Спр_Контрагенты.Объект = "Справочник.Контрагенты";
// Поля доступа:
Спр_Контрагенты.ПоляРегистрации.Добавить("УНП");
Спр_Контрагенты.ПоляРегистрации.Добавить("Адрес.ЮрАдрес");
АльтерПолей = Новый Массив();
АльтерПолей.Добавить("Страна");
АльтерПолей.Добавить("Область");
АльтерПолей.Добавить("Район");
Спр_Контрагенты.ПоляРегистрации.Добавить(АльтерПолей);

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

&НаСервере
Процедура НастройкаПараметровДоступаКРегистру()

Рег_Сведений = Новый ОписаниеИспользованияСобытияДоступЖурналаРегистрации();
// Объект, доступ к которому будет регистрироваться
Рег_Сведений.Объект = "РегистрСведений.ВидыЗаключенныхДоговоров";
// Поля доступа:
Рег_Сведений.ПоляДоступа.Добавить("РентабельностьСделки");
// Поля регистрации:
Рег_Сведений.ПоляРегистрации.Добавить("Менеджер");

// Для настройки объекта метаданных
НастройкаМетаданных = Новый Массив();
НастройкаМетаданных.Добавить(Рег_Сведений);

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


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

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


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

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

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

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

КонецЦикла;

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


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

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

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



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

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


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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

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



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


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

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

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


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

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

👉@DevLab1C
🔥2👍1
Media is too big
VIEW IN TELEGRAM
Загрузка текстового документа в таблицу значений 1С

источник

👉@DevLab1C
🔥2
Media is too big
VIEW IN TELEGRAM
Бинарный поиск по таблице значений 1С

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

Таймер к видео:
0:00:48 - Что такое бинарный поиск? Краткое объяснение, демонстрация;
0:04:37 - Подготовительные работы (создаем обработку для демонстрации, заполняем таблицу значений и т.п.);
0:07:53 - Реализуем и проверяем бинарный поиск числового значения по таблице значений;
0:13:04 - Реализуем обычный поиск числового значения по таблице значений;
0:13:57 - Сравниваем скорость обычного и бинарного поиска.

источник

👉@DevLab1C
👍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 Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

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

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

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

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

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

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

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

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 Обучающие видео, книги по Физике и Математике

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

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

Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
Чтение записи документа в регистре сведений запросом в 1С 8.3

&НаСервере
Процедура ЧтениеЗаписиЗапросом()

// Если не требуется изменять найденные записи.
СсылкаДок = Документы.УстановкаЦен.НайтиПоНомеру("ПТО-00000001", '20201231');

// Чтение запросом записей регистра сведений "ЦеныРеализации" текущего документа
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныРеализации.Период,
| ЦеныРеализации.Регистратор,
| ЦеныРеализации.НомерСтроки,
| ЦеныРеализации.Активность,
| ЦеныРеализации.Номенклатура,
| ЦеныРеализации.Контрагент,
| ЦеныРеализации.Организация,
| ЦеныРеализации.Цена
|ИЗ
| РегистрСведений.ЦеныРеализации КАК ЦеныРеализации
|ГДЕ
| ЦеныРеализации.Регистратор = &Регистратор
|УПОРЯДОЧИТЬ ПО
| ЦеныРеализации.НомерСтроки";

Запрос.УстановитьПараметр("Регистратор",СсылкаДок);
РезультатЗапроса = Запрос.Выполнить();

Записи = РезультатЗапроса.Выбрать();
Пока Записи.Следующий() Цикл

Сообщить("по документу " + Записи.Регистратор + " по " +Записи.Организация + ", "
+ Записи.Контрагент + " " + Записи.Номенклатура +" = "+ Записи.Цена + " руб.");

КонецЦикла;

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


👉@DevLab1C
🔥2👍1😐1
Универсальные коллекции значений 1С
Ильяс Низамутдинов

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

источник

👉@DevLab1C
🔥4👍1