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

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

источник

👉@DevLab1C
👍3🔥2
🚀 Подборка полезных 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://xn--r1a.website/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
🔥2👍1
Media is too big
VIEW IN TELEGRAM
Добавление новой печатной формы в типовую конфигурацию 1С

источник

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

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

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

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

👉@DevLab1C
👍1🔥1