1С:Предприятие 8
783 subscribers
46 photos
160 videos
51 links
🔥 Разработка в 1С — просто и понятно! 🔥

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


Обещание и Возвращающие Обещание в 1С 8.3

Процедура ВыполнениеПримераСАсих()

Попытка
ВыполнениеКода();
Исключение
// Исключение из ВыполнениеКода() не будет перехвачено здесь
КонецПопытки

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

Асинх Функция ВыполнениеКода() // Всегда возвращает Обещание

ВызватьИсключение "Выброшено в ВыполнениеКода()";
//При успешном завершении в Обещание будет завернуто значение, которое было аргументом оператора Возврат.
//Если при выполнении Асинх функции произошло исключение, то в Обещание будет завернуто это исключение.

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


Обещание как аргумент оператора Ждать в 1С 8.3


Асинх Процедура ВыполнениеПримераСАсих()

Попытка
// Для того, чтобы узнать как завершилась Асинх функция – это использовать возвращенное ею Обещание как аргумент оператора Ждать.
Ждать ВыполнениеКода(Null);
Исключение
// Исключение из НеNull() будет перехвачено здесь
Сообщить("Передали Null");
КонецПопытки

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

Асинх Функция ВыполнениеКода(ПеремП) // Всегда возвращает Обещание

Если ПеремП = Null Тогда
ВызватьИсключение "Выброшено в ВыполнениеКода()";
Иначе
Возврат ПеремП;
КонецЕсли;

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

// Асинх процедура не возвращает значения. А если при выполнении Асинх процедуры возникнет не перехваченное исключение,
// то это приведет к выдаче сообщения об ошибке.


👉@DevLab1C
🔥3👍1
Количество символов латиницы в искомой строке в 1С 8.3


Функция Получение_Количества_Символов_Латиницы(Знач СтрокаЛатиница) Экспорт

Найденные_Символы_Латиницы = Новый Массив;

СтрокаЛатиница = СокрЛП(СтрокаЛатиница);
СтрокаЛатиница = Нрег(СтрокаЛатиница);
ДлинаСтрокиЛатиницы = СтрДлина(СтрокаЛатиница);

Если ДлинаСтрокиЛатиницы > 0 Тогда

СимволыЛатиницы= "abcdefghijklmnopqrstuvxyz";

Для СЛ = 1 по ДлинаСтрокиЛатиницы Цикл

ТекСимвол = Сред(СтрокаЛатиница,СЛ,1);
Если Найденные_Символы_Латиницы.Найти(ТекСимвол) = Неопределено
и СтрНайти("abcdefghijklmnopqrstuvxyz",ТекСимвол) > 0 Тогда
Найденные_Символы_Латиницы.Добавить(ТекСимвол);
КонецЕсли;

КонецЦикла;

КонецЕсли;

//Возвращает количество найденных различных символов латиницы в строке 1С 8.3
Возврат Найденные_Символы_Латиницы.Количество();

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


👉@DevLab1C
👍2🔥1
Очиститка кэша 1С батником


@echo off
del /s /q %userprofile%\AppData\Local\1C\*.*
rd /s /q %userprofile%\AppData\Local\1C\

del /s /q %userprofile%\AppData\Roaming\1C\1cv8\*.*
rd /s /q %userprofile%\AppData\Roaming\1C\1cv8\

del /s /q %userprofile%\AppData\Roaming\1C\1cv82\*.*
rd /s /q %userprofile%\AppData\Roaming\1C\1cv82\


👉@DevLab1C
👍5🔥4
Проверка на наличие Кириллицы в строке в 1С 8.3


Функция ПроверкаСтрокиНаКириллицу(СтрТекст, ТекДок)

СтрТекстДок = СокрЛП(СтрТекст);
СтрТекстДок = Нрег(СтрТекстДок);
ДлинаСтрокиНомера = СтрДлина(СтрТекстДок);
СимволыКирилицы = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
Найденные_Символы="";

Если ДлинаСтрокиНомера > 0 Тогда
Для СК = 1 По ДлинаСтрокиНомера Цикл
ТекСимвол = Сред(СтрТекстДок,СК,1);
Если СтрЧислоВхождений(СимволыКирилицы,ТекСимвол) > 0 Тогда
Найденные_Символы=Найденные_Символы+ТекСимвол;
КонецЕсли;
КонецЦикла;
КонецЕсли;

Если Найденные_Символы<>"" Тогда
#Если Клиент Тогда
Предупреждение("В строке "+СокрЛП(СтрТекст)+" обнаружены недопустимые символы: """+Врег(Найденные_Символы)+"""");
#КонецЕсли
КонецЕсли;

Возврат СтрТекст;

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


👉@DevLab1C
🔥3👍1
Публикация баз данных 1С:Предприятие на веб-сервере Apache в Windows c защитой SSL и аутентификацией по паролю

Для публикации информационных баз 1С:Предприятие на платформе Windows часто используют альтернативу штатному IIS - веб сервер Apache, который, несмотря на ряд ограничений, тоже неплохо подходит для небольших и средних установок. Одним из очевидных преимуществ Apache является его кроссплатформенность, т.е. если вы умеете настраивать данный веб-сервер на одной платформе, то без особого труда сделаете это и на другой. В данной публикации мы расскажем вам как установить и настроить Apache для публикации баз с SSL-защитой на базе сертификатов Let's Encrypt и дополнительной аутентификацией по паролю.

➡️Читать статью

👉@DevLab1C
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Поиск строк в Таблице значений по нескольким значениям в 1С 8.3


Процедура Поиск_строк_в_ТЗ_по_нескольким_значениям(ТЗ, ЗначениеПоиска1, ЗначениеПоиска2, ВидПоиска) Экспорт //ЗначениеПоиска3...,

// Параметры:
// ТЗ - таблица значений по полям которой ищем
// Пример ТЗ:
// Стр["Цвет"] = "Красный";
// Стр["Вес"] = 120;
//
// ЗначениеПоискаN - переданные значения для поиска по колонкам (согласно ОписаниеТипов)
// Пример значений:
// ЗначениеПоиска1="Красный"
// ЗначениеПоиска2=120
//
// ВидПоиска - метод поиска: 1-запросом, 2-с помощью структуры

Если ВидПоиска=1 Тогда //запросом

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Врем_ТЗ.Цвет КАК Цвет,
| Врем_ТЗ.Вес КАК Вес
|ПОМЕСТИТЬ Врем_ТЗ
|ИЗ
| &ТЗ КАК Врем_ТЗ
|;
|
|///////////////////////////////////////////
|ВЫБРАТЬ
| Врем_ТЗ.Цвет КАК Цвет,
| Врем_ТЗ.Вес КАК Вес
|ИЗ
| Врем_ТЗ КАК Врем_ТЗ
|ГДЕ
| Врем_ТЗ.Цвет = &Цвет
| И Врем_ТЗ.Вес = &Вес";

Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.УстановитьПараметр("Цвет", ЗначениеПоиска1);
Запрос.УстановитьПараметр("Вес", ЗначениеПоиска2);

РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать();
Пока Записи.Следующий() Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;

ИначеЕсли ВидПоиска=2 Тогда //с помощью структуры

ЗначенияПоиска = Новый Структура;
ЗначенияПоиска.Вставить("Цвет", ЗначениеПоиска1);
ЗначенияПоиска.Вставить("Вес", ЗначениеПоиска2);
НайденныеПоля = ТЗ.НайтиСтроки(ЗначенияПоиска);

КонецЕсли;

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


👉@DevLab1C
👍2🔥1
Получение запросом всех строк со значениями всех столбцов из таблицы в 1С 8.3


&НаСервере
Процедура ПолучениеЗапросомВсехСтрокСоЗначениямиВсехСтолбцовИзТаблицы()

// Звездочка используется, когда нужно выбрать все столбцы из таблицы
Запрос = Новый Запрос("ВЫБРАТЬ
| *
|ИЗ
| Справочник.Материалы");

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

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


👉@DevLab1C
🔥3👍2🤡2
Получение запросом всех строк со значениями определенных столбцов в 1С 8.3


&НаСервере
Процедура ПолучениеЗапросомВсехСтрокСоЗначениямиОпределенныхСтолбцов()

// У каждого столбца в таблице есть своё соответствующее имя
Запрос = Новый Запрос("ВЫБРАТЬ
| Наименование,
| Производитель,
| СрокИспользования
|ИЗ
| Справочник.Материалы");

РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда // Такая проверка рекомендуется фирмой 1С
Записи = РезультатЗапроса.Выбрать();
Пока Записи.Следующий() Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;
Иначе // Сообщить("Данные отсутствуют!");
КонецЕсли;

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


👉@DevLab1C
🔥41👍1
Media is too big
VIEW IN TELEGRAM
Как прочитать JSON в 1С

Из этого видео вы узнаете Как прочитать JSON в 1С.
Формат JSON сегодня является одним из основных форматов обмена.
В 1С есть несколько способов работы с форматом JSON, о которых и пойдет речь в этом видео.

источник

👉@DevLab1C
👍4🔥2
Media is too big
VIEW IN TELEGRAM
Настройка работы 1С Предприятия 8.3 с использованием PostgreSQL в среде Linux

👉@DevLab1C
👍2🔥1