1С:Предприятие 8 – Telegram
1С:Предприятие 8
865 subscribers
91 photos
200 videos
67 links
🔥 Разработка в 1С — просто и понятно! 🔥

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

Возможные варианты работы с базой 1С: файловый и клиент-серверный. Плюсы и минусы каждого из вариантов.

источник

👉@DevLab1C
👍2🔥2
Тест Гилева. Нагрузочный тест TPC-1C
Из этого видео вы узнаете как быстро оценить скорость работы системы в целом, используя нагрузочный тест TPC-1C.

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

источник

👉@DevLab1C
🔥3👍1
Запросы в 1С

Пример 1 - Обход результатов запроса по группировкам
Пример 2 - Особенности передачи таблицы значений в запрос

источник

👉@DevLab1C
👍2🔥2
Основы 1С 8.3 для начинающих (Управляемые формы). Основы программирования и конфигурирования.

#1. Платформа. Конфигурация. Установка учебной версии. Информационная база
#2. Файловые и клиент-серверные информационные базы
#3. Режимы запуска. Тонкий клиент. Толстый клиент. Веб-клиент.
#4. Конфигурация. Объекты метаданных и их свойства.
#5. Сохранение изменений в конфигурации.
#6. Справочники и их создание.
#7. Выгрузка/Загрузка информационной базы. Сохранение/Загрузка конфигурации.
#8. Пользовательский интерфейс. Подсистемы. Корпоративный стиль.
#9. Настройка справочников. Иерархия справочников. Владельцы справочников.
#10. Реквизиты справочников. Стандартные типы реквизитов. Табличные части.

источник

👉@DevLab1C
4👍3🔥2
Как получить IP адрес компьютера

Для получения IP используем возможности COM-объекта WbemScripting.
Итоговая функция для получения IP-адреса выглядит так:


Функция ПолучитьIPАдрес()

КомпСтр = ".";
НКО = Новый COMОбъект("WbemScripting.SWbemLocator");
objWMIService = НКО.ConnectServer(КомпСтр, "root\CIMV2");
СН = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration where ipenabled = true");

Для Каждого ТСК Из СН Цикл
Для Каждого StrPrm Из ТСК.IPAddress Цикл
Возврат StrPrm;
КонецЦикла;
КонецЦикла;

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


Функция получит и вернёт локальный айпи компьютера.
Представим, что у компьютера две сетевые карты. Одна — «смотрит» в интернет. Таким образом, мы получим только локальный адрес.

👉@DevLab1C
🔥6
Media is too big
VIEW IN TELEGRAM
Помогаторы разработчика 1С

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

Доклад ориентирован в первую очередь для начинающих свой путь в профессию специалистов, а также среднего уровня разработчиков. Однако, очень надеюсь, что он будет интересен и полезен также и опытным программистам 1С.

источник

👉@DevLab1C
👍5🔥2
Пустая дата в 1С

1. Понятие пустой даты на платформе 1С 8 Предприятие

В технологической платформе «1С:Предприятие 8» не существует понятия "пустая" переменная. Любая переменная всегда имеет определенное значение. Для многих типов данных в 1С:Предприятии 8 существуют значения переменной по умолчанию. Эти значения используются системой в тех случаях, когда нет явного указания на устанавливаемое значение.

Например, значение переменной по умолчанию используется при очистке поля ввода.

Инициализировать переменную даты как пустую в 1С, можно, задав для такого типа данных только значение по умолчанию. Значение даты по умолчанию это дата начала отсчёта (01 января 0001 года), то есть самая первая дата по григорианскому календарю.

Очень часто при разработке прикладного решения необходимо проверить является ли поле с типом «Дата» или переменная, в которой хранится значение с этим типом, пустыми. Есть несколько способов выполнить проверку на пустое значение (проверку на пустую дату) в 1С.

2. Пустая дата 1С в текстах модулей обработчиков

Существует несколько вариантов инициализации пустой даты в 1С 8.3 для текстов модулей:

1. ЕслиДата= '00010101'Тогда
2. ЕслиДата= '00010101000000'Тогда
3. ЕслиДата= '0001-01-01'Тогда
4. Если Дата = Дата(1, 1, 1) Тогда
5. Если Дата = Дата(1, 1, 1, 0, 0, 0) Тогда
6. Если Не ЗначениеЗаполнено(Дата) Тогда


В последнее время набирает популярность конструкция:
Если Не ЗначениеЗаполнено(Дата) Тогда

В этом случае не нужно проверять последовательность и количество символов как в случае с конструкцией
Дата(1, 1, 1, 0, 0, 0)

А в случае использования конструкции
'00010101000000'

возникает проблема с символом «'». Его не так просто отыскать на клавиатуре. Особенно для начинающих разработчиков.

3. Пустая дата в запросе 1С

Значение пустой даты в запросе в 1С 8.3—когда дата не выбрана, можно получить в запросе через функцию ДАТАВРЕМЯ() или передать в качестве параметра запроса.


1. ГДЕДата= ДАТАВРЕМЯ(0001,01,01,0,0,0)
2. ГДЕДата= ДАТАВРЕМЯ(1,1,1)
3. ГДЕДата= &ПустаяДата
Запрос.УстановитьПараметр("ПустаяДата", '00010101');


👉@DevLab1C
🔥3👍1
Как в запросе задать константу типа дата в 1с 8.3, 8.2


Процедура КонстантаТипаДатаВЗапросе()
Запрос = Новый Запрос(
"
| ВЫБРАТЬ
| ДАТАВРЕМЯ(2013, 12, 31) КАК НовыйГод
|"
);

Результат = Запрос.Выполнить();
ОткрытьЗначение(Результат.Выгрузить(ОбходРезультатаЗапроса.Прямой));
КонецПроцедуры


👉@DevLab1C
🔥3👍1
Мутабельные значения в 1С

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

1. Что собой представляет мутабельные значения в 1С?

Для начала сделаем определение мутабельного типа в рамках языка программирования 1С и попытаемся понять, чем же он отличается от других типов.

Мутабельный тип (в переводе с английского Mutable – изменчивый) – это сложный тип данных в 1С, который может менять свои свойства уже после создания.

К мутабельным типам в языке программирования 1С относятся:
· объект;
· форма;
· список значений;
· таблица значений.

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

Простые (примитивные) типы:
· строка;
· число;
· дата;
· булево.


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

Предопределенным типом является цвет.

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

2. Как проверить заполненные мутабельные значения в 1С?

При переходе со старой версии платформы 1С:Предприятие (до 8.2) на актуальную нередко в момент тестирования или эксплуатации возникают ошибки проверки мутабельного значения на заполненность. Это связано с особенностью глобальной функции ЗначениеЗаполнено(). Ранее использовалась гл. функция НеЗаполнено(), которая проверяла, хоть и медленнее, но более эффективно. То есть в новых версиях платформы 1С Предприятие подобная проблема может возникнуть в тот момент, когда проверяем значение, не зная его типа.

Зачастую ошибки подобного толка касаются таких типов как формы и элементы форм, списки значений (таблица, список, дерево), COM- объекты и т.д.

Для решения данной проблемы целесообразно проверять тип данных перед проверкой его заполненности, если заранее мы его не знаем. Зачастую это происходит при написании обменов данными.

Для проверки типа данных 1С мы можем использовать конструкцию типа:

Если ТипЗнч(«Наша переменная» <>Тип("Объект") и ЗначениеЗаполнено(«Наша переменная»\<>
Тогда
//Тут выполняем нужные действия с переменной
КонецЕсли;


В данном случае 1С проанализирует первое условие, и если типы совпадут, дальнейшее условие отработано не будет.

В некоторых случаях целесообразно сделать проверку на примитивные типы, для этого заранее создадим массив примитивных типов:

МассивПримитивныхТипов=Новый Массив;
МассивПримитивныхТипов.Добавить(Тип("Число"));
МассивПримитивныхТипов.Добавить(Тип("Строка"));
МассивПримитивныхТипов. Добавить(Тип("Дата"));
МассивПримитивныхТипов. Добавить(Тип("Булево"));


Далее последует проверка:

Если не МассивПримитивныхТипов.Найти(Тип3нч(«Наша переменная») ) = 0 и
ЗначениеЗаполнено(«Наша переменная» <> Тогда
//Тут выполняем нужные действия с переменной
КонецЕсли;


👉@DevLab1C
🔥4👍3
Как в 1С прибавить к дате 1 день?

1. Дата в программе 1С

Дата в программе 1С – примитивный тип данных.
Дату можно задать прямо в коде программы 1С, в одинарных кавычках: первые 4 цифры — это год, затем 2 цифры — это месяц, и последние – день.
ПеременнаяДата ='20200801';
Сообщить («Первое августа»);


Дату можно задать командой Дата () и указать параметры этой команды в скобках, из которых будет сформирована дата.
ПеременнаяДата =Дата (2020,08,01);

Чтобы присвоить переменной «Дата» какое-либо значение, мы сначала определяем переменную, где будет храниться дата и присваиваем ей начальное значение 01.01.0001 00:00:00 – представление пустой даты.
В команде «Ввести Дату ()» указываем переменную, в которую будет помещено введенное значение.
ПеременнаяДата = «00010101»;
ВвестиДату(ПеременнаяДата);
ОткрытьЗначение(ПеременнаяДата);


Начальное или «Пустое» значение даты 1С можно вводить и так:
ПеременнаяДата = «0001-01-01»;
Переменная_ата = Дата (1,1,1);


Дата () имеет формат год – месяц – день – час – минута – секунда, то есть дата содержит не только дату, но и время.
Текущую дату и время в системе можно получить следующим образом:
ПеременнаяДата = ТекущаяДата0);
Сообщить(«Сегодня»);


Явно указать нужную дату можно с помощью литералов встроенного языка запросов 1С «ГГГГММДДЧЧММСС», «20200825000012» – получим 25.08.2020 00:00:12
Либо через функцию Дата () или ДатаВремя ()\
ДатаВремя(2020,08,25,00,00,12); // получим 25.08.2020 00:00:12
Дата(2020,08,25);
// получим 25.08.2020 00:00:00


Кроме того, в программах 1С возможно сложить две даты. Делается это следующим образом:
ПустаяДата = «00010101000000»;
ПеременнаяДата = ПустаяДата + ( ПеременнаяДата 1 - ПустаяДата ) + ( ПеременнаяДата 2 - ПустаяДата):



2. Прибавить к дате день в 1С – решение задачи

Выше мы перечислили основные манипуляции с типом данных Дата, изначально предусмотренные в 1С. Однако нет специальной встроенной функции, которая бы прибавляла к дате день в 1С, хотя у пользователей иногда возникает такая потребность. Далее попробуем разобраться, как реализовать подобное.
Итак, есть несколько вариантов решения этой задачи. Первый – прибавить к дате день в 1С при помощи оператора «+» секунды. Например, используя функцию КонецДня() :
НоваяДата КонецДня(ПеременнаяДата)+1;

Мы прибавляем секунду к 25.08.2020 23:59:59 и получаем следующий день 26.08.2020 00:00:00
Для прибавления целого дня, нужно прибавить количество секунд в одном дне.
Количество секунд в сутках 60*60*24 = 86400 секунд.
НоваяДата=Дата+86400;
// прибавить несколько («Количество») дней
Новая Дата Дата+86400 Количество
// прибавить час
НоваяДата=Дата+60*60;


Второй способ – используя запрос:

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


Функция «ДобавитьКДате(<ИсходнаяДата>, <ЕдиницаИзмерения>, <Количество>)» – встроенная функция языка запросов 1С.
Функция позволяет добавить и вычесть из даты нужное количество времени в произвольном количестве. ЕдиницаИзмерения – определяет единицу времени (год, месяц, день, час, минута, секунда).
/Прибавить несколько дней
ДОБАВИТЬКДАТЕ(Дата, ДЕНЬ, Количество)
//Прибавить час
ДОБАВИТЬДАТЕ (Дата, ЧАС, 1)


👉@DevLab1C
🔥2👍1