1С:Предприятие 8
Open in Telegram
🔥 Разработка в 1С — просто и понятно! 🔥 ✅ Полезные фишки и лайфхаки для разработчиков ✅ Объяснение сложных тем простыми словами ✅ Готовые решения, сниппеты и примеры кода ✅ Разбор ошибок и способов их устранения ✅ Новости и тренды в мире 1С
Show more867
Subscribers
-324 hours
-27 days
-1130 days
Posts Archive
С нуля до senior 1с
урок #1 Знакомство и установка платформы 1с
урок #2 Первое открытие 1с
урок #3 Основы программирования 1с
урок #4 Работаем с кодом в 1с
урок #5 Повтор прошлых тем #1 в 1с
урок #6 Справочники | константы | перечисления в 1с
урок #7 Знакомство с документами 1с
урок #8 Работаем с константами в 1с
урок #9 Работа со справочниками в 1с
урок #10 Повтор прошлых тем #2 в 1с
источник
📲 Мы в MAX
👉@DevLab1C
+1
Сложение двух дат в 1С 8.3
&НаКлиенте
Функция СложениеДат(Команда)
ПустаяДата = '00010101';
Дата1 = '20200415'; // 15.04.2020
Дата2 = '20220214'; // 14.02.2022
Результат = ПустаяДата + (Дата1 - ПустаяДата) + (Дата2 - ПустаяДата);
Сообщить("Дата = "+Результат); // Дата = 29.05.4041 0:00:00
Возврат Результат;
КонецФункции
Сравнение двух дат в 1С 8.3
&НаКлиенте
Процедура СравнениеДат(Команда)
Дата1 = '20200415'; // 15.04.2020
Дата2 = '20200415'; // 15.04.2020
Если Дата1.Сравнить(Дата2) = 0 Тогда
Сообщить("Даты равны");
КонецЕсли;
КонецПроцедуры
👉@DevLab1CСоздать, удалить пользователя, вывести список пользователей в 1С 8.3
Процедура СоздатьПользователя()
ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
ПользовательИБ.Имя = "odin1Crus";
ПользовательИБ.Пароль = "4dSwer4";
ПользовательИБ.ПоказыватьВСпискеВыбора = Истина;
ПользовательИБ.Роли.Добавить(Метаданные.Роли.АдминистраторСистемы);
ПользовательИБ.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Основной;
ПользовательИБ.Записать();
КонецПроцедуры
Процедура УдалитьПользователя()
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("odin1Crus");
ПользовательИБ.Удалить();
//ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
//ПользовательИБ.Удалить();
КонецПроцедуры
Процедура ВывестиСписокПользователей()
СписокПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого ПользовательИБ Из СписокПользователей Цикл
Сообщить(ПользовательИБ);
КонецЦикла;
КонецПроцедуры
👉@DevLab1C🚀 Подборка полезных 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 Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24
Как удалить документы из базы выборочно за период 2023? Внимание! Инструмент для крайних целей!
Как удалить документы из базы выборочно за период в 1С? Получение объекта и его удаление. Удаление объекта из базы нарушает ссылочную целостность. Необходимо применять для решения нетривиальных задач. Например, при свертке базы.
источник
👉@DevLab1C
Чтение записи документа в регистре сведений запросом в 1С 8.3
&НаСервере
Процедура ЧтениеЗаписиЗапросом()
// Если не требуется изменять найденные записи.
СсылкаДок = Документы.УстановкаЦен.НайтиПоНомеру("ПТО-00000001", '20201231');
// Чтение запросом записей регистра сведений "ЦеныРеализации" текущего документа
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныРеализации.Период,
| ЦеныРеализации.Регистратор,
| ЦеныРеализации.НомерСтроки,
| ЦеныРеализации.Активность,
| ЦеныРеализации.Номенклатура,
| ЦеныРеализации.Контрагент,
| ЦеныРеализации.Организация,
| ЦеныРеализации.Цена
|ИЗ
| РегистрСведений.ЦеныРеализации КАК ЦеныРеализации
|ГДЕ
| ЦеныРеализации.Регистратор = &Регистратор
|УПОРЯДОЧИТЬ ПО
| ЦеныРеализации.НомерСтроки";
Запрос.УстановитьПараметр("Регистратор",СсылкаДок);
РезультатЗапроса = Запрос.Выполнить();
Записи = РезультатЗапроса.Выбрать();
Пока Записи.Следующий() Цикл
Сообщить("по документу " + Записи.Регистратор + " по " +Записи.Организация + ", "
+ Записи.Контрагент + " " + Записи.Номенклатура +" = "+ Записи.Цена + " руб.");
КонецЦикла;
КонецПроцедуры
👉@DevLab1C🚀 Подборка полезных 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С
В этом видео изучим бинарный поиск, а потом реализуем этот алгоритм для поиска в таблице значений 1С. И самое интересное: проведем сравнение, какой поиск выполняется быстрее: бинарный или типовой поиск по таблице значений.
Таймер к видео:
0:00:48 - Что такое бинарный поиск? Краткое объяснение, демонстрация;
0:04:37 - Подготовительные работы (создаем обработку для демонстрации, заполняем таблицу значений и т.п.);
0:07:53 - Реализуем и проверяем бинарный поиск числового значения по таблице значений;
0:13:04 - Реализуем обычный поиск числового значения по таблице значений;
0:13:57 - Сравниваем скорость обычного и бинарного поиска.
источник
👉@DevLab1C
Ускорение обработки данных в 1С
В этой статье расскажу о том, как можно распараллеливать выполнение длительной обработки данных. Рассмотрим на примере процедуры, в которой получаем массив объектов и обрабатываем по очереди.
Процедура ДлительнаяОперация()
МассивОбъектов = ПолучитьМассивОбъектов();
Для Каждого Ссылка Из МассивОбъектов Цикл
ОбработатьОбъект(Ссылка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ЗапуститьДлительнуюОперацию(Команда)
ДлительнаяОперация();
КонецПроцедуры
У меня операция занимает 15 сек.
Создаем процедуру ЗапуститьДлительнуюОперациюНаСервере(), в которой получим массив объектов и разделим его на несколько частей, на каждую часть массива создадим фоновое задание.
Процедура ЗапуститьДлительнуюОперацию(Команда)
ЗапуститьДлительнуюОперациюНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗапуститьДлительнуюОперациюНаСервере()
МассивОбъектов = ПолучитьМассивОбъектов();
МассивЧастейОбъектов = Новый Массив;
КолЭлементов = Цел(МассивОбъектов.Количество() / 3);
ЧастьОбъектов = Новый Массив;
Для Индекс = 0 По МассивОбъектов.ВГраница() Цикл
Если ЧастьОбъектов.Количество() >= КолЭлементов Тогда
МассивЧастейОбъектов.Добавить(ЧастьОбъектов);
ЧастьОбъектов = Новый Массив;
КонецЕсли;
ЧастьОбъектов.Добавить(МассивОбъектов.Получить(Индекс));
КонецЦикла;
Если ЧастьОбъектов.Количество() > 0 Тогда
МассивЧастейОбъектов.Добавить(ЧастьОбъектов);
КонецЕсли;
Для Каждого ЧастьОбъектов Из МассивЧастейОбъектов Цикл
ПараметрыВыполнения = Новый Массив;
ПараметрыВыполнения.Добавить(ЧастьОбъектов);
ФоновыеЗадания.Выполнить("СвойОбщийМодуль.ДлительнаяОперация", ПараметрыВыполнения, Новый УникальныйИдентификатор);
КонецЦикла;
КонецПроцедуры
В серверном общем модуле создаем экспортную процедуру, в которой будем обрабатывать эти части массива по очереди. В итоге будут запущены 3 фоновых задания, которые будут обрабатывать только свою часть объектов.
Процедура ДлительнаяОперация(ЧастьОбъектов) Экспорт
Для Каждого Объект Из ЧастьОбъектов Цикл
ОбработатьОбъект(Объект);
КонецЦикла;
КонецПроцедуры
В результате время на операцию занимает меньше секунды.
Но это не значит, что весь массив за это время обработан. Мы лишь запустили задания, которые начали обрабатывать данные в фоне. Если необходима дальнейшая обработка результатов, то можно отловить результаты выполнения фоновых заданий.
👉@DevLab1CНастройка параметров события Доступ/Отказ в доступе в журнале регистрации в 1С 8.3
&НаСервере
Процедура НастройкаПараметровДоступаКСправочнику()
Спр_Контрагенты = Новый ОписаниеИспользованияСобытияДоступЖурналаРегистрации();
// Объект, доступ к которому будет регистрироваться
Спр_Контрагенты.Объект = "Справочник.Контрагенты";
// Поля доступа:
Спр_Контрагенты.ПоляДоступа.Добавить("УНП");
Спр_Контрагенты.ПоляДоступа.Добавить("Адрес.ЮрАдрес");//Табл.часть
// Поля регистрации:
Спр_Контрагенты.ПоляРегистрации.Добавить("УНП");
Спр_Контрагенты.ПоляРегистрации.Добавить("Адрес.ПочтАдрес");//Табл.часть
АльтерПолей = Новый Массив();
АльтерПолей.Добавить("Страна");
АльтерПолей.Добавить("Область");
АльтерПолей.Добавить("Район");
// Для настройки объекта метаданных
Спр_Контрагенты.ПоляРегистрации.Добавить(АльтерПолей);
НастройкаМетаданных = Новый Массив();
НастройкаМетаданных.Добавить(Спр_Контрагенты);
КонецПроцедуры
&НаСервере
Процедура НастройкаПараметровОтказаДоступаКСправочнику()
Спр_Контрагенты = Новый ОписаниеИспользованияСобытияОтказВДоступеЖурналаРегистрации();
// Объект, доступ к которому будет регистрироваться
Спр_Контрагенты.Объект = "Справочник.Контрагенты";
// Поля доступа:
Спр_Контрагенты.ПоляРегистрации.Добавить("УНП");
Спр_Контрагенты.ПоляРегистрации.Добавить("Адрес.ЮрАдрес");
АльтерПолей = Новый Массив();
АльтерПолей.Добавить("Страна");
АльтерПолей.Добавить("Область");
АльтерПолей.Добавить("Район");
Спр_Контрагенты.ПоляРегистрации.Добавить(АльтерПолей);
КонецПроцедуры
&НаСервере
Процедура НастройкаПараметровДоступаКРегистру()
Рег_Сведений = Новый ОписаниеИспользованияСобытияДоступЖурналаРегистрации();
// Объект, доступ к которому будет регистрироваться
Рег_Сведений.Объект = "РегистрСведений.ВидыЗаключенныхДоговоров";
// Поля доступа:
Рег_Сведений.ПоляДоступа.Добавить("РентабельностьСделки");
// Поля регистрации:
Рег_Сведений.ПоляРегистрации.Добавить("Менеджер");
// Для настройки объекта метаданных
НастройкаМетаданных = Новый Массив();
НастройкаМетаданных.Добавить(Рег_Сведений);
КонецПроцедуры
👉@DevLab1CКак удалить документы из базы выборочно за период 2023? Внимание! Инструмент для крайних целей!
Как удалить документы из базы выборочно за период в 1С? Получение объекта и его удаление. Удаление объекта из базы нарушает ссылочную целостность. Необходимо применять для решения нетривиальных задач. Например, при свертке базы.
источник
👉@DevLab1C
