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

Полезные фишки и лайфхаки для разработчиков
Объяснение сложных тем простыми словами
Готовые решения, сниппеты и примеры кода
Разбор ошибок и способов их устранения
Новости и тренды в мире 1С
Download Telegram
Как осуществить запись в журнал регистрации «1С: Предприятие 8»?


Процедура РегистрСведенийСписокДополнительныеУслугиПередУдалением(Элемент)
ТС = Элемент.ТекущаяСтрока;
Комментарий = "Код: " + ТС.Код +
". Номенклатура: " + ТС.Номенклатура +
". Вид наценки: " + ТС.ВидНаценки;
ЗаписьЖурналаРегистрации("Данные.Удаление",
УровеньЖурналаРегистрации.Информация,
Метаданные.РегистрыСведений.ДополнительныеУслуги,
РежимТранзакцииЗаписиЖурналаРегистрации.Независимая,
Комментарий);
КонецПроцедуры


👉@DevLab1C
👍3🔥2
Как около элемента управления формы открывается выпадающий список?

Необходимо воспользоваться способом формы из меню («Список Значений», «Элемент Формы»):


//выведем пользователю список вариантов,
//для ввода СФ около элемента управления «Кнопка»
СписокДействийВводСФ = Новый СписокЗначений();
СписокДействийВводСФ.Добавить(
"ВвестиНовыйСчетФактуру", "Ввести новый счет-фактуру");
СписокДействийВводСФ.Добавить(
"ДополнитьСуществующийСчетФактуру", "Дополнить существующий счет-фактуру");

// ФормаДокумента.ТекущийЭлемент -
//Элемент, около которого открывается список
ВыбранныйВариантВводаСФ = ФормаДокумента.ВыбратьИзМеню(
СписокДействийВводСФ, ФормаДокумента.ТекущийЭлемент);
Если ВыбранныйВариантВводаСФ = Неопределено Тогда
Возврат;
КонецЕсли;

Если ВыбранныйВариантВводаСФ.Значение = "ВвестиНовыйСчетФактуру" Тогда
...
КонецЕсли;


👉@DevLab1C
🔥2👍1
Как программно на «Панели» переключаются закладки (страницы)?


Панель1 = ЭлементыФормы.Панель1;
Панель1.ТекущаяСтраница = Панель1.Страницы.Страница2;
Панель1.ТекущаяСтраница = Панель1.Страницы["Страница2"];


👉@DevLab1C
🔥2👏1
Как обращаться к странице формы, если на нее не помещен элемент управления формы «Панель»?


Форма обладает свойством «Панель», через которое необходимо обращаться. Например:

ПанельФормы = ЭтаФорма.Панель;
СтраницыФормы = ПанельФормы.Страницы;
Если ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница1 Тогда
//Мы на первой странице
. . .
ИначеЕсли ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница2 Тогда
//Мы на второй странице
. . .
Иначе //Мы на последней странице
. . .
КонецЕсли;


👉@DevLab1C
🔥2👍1
Как правильно удаляются строки из текста при помощи встроенного языка системы «1С:8»?


Процедура УдалитьСтрокиТекста()
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.Прочитать("Текст.txt");
Сч = 1;
Пока Сч < ТекстДок.КоличествоСтрок() Цикл
Строка = ТекстДок.ПолучитьСтроку(Сч);
Если Найти(Строка, "1С") > 0 Тогда
ТекстДок.УдалитьСтроку(Сч);
Иначе // Благодаря этой переменной мы
// не пропускаем строки в тексте
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
ТекстДок.Записать("Текст.txt");
КонецПроцедуры


👉@DevLab1C
🔥2👍1
Media is too big
VIEW IN TELEGRAM
10 функций БСП, которые должен знать каждый программист 1С

🔴В этом видео мы покажем вам 10 функций из 1С:БСП, которые должен знать каждый программист 1С. Эти функции помогут писать код быстрее и сделают ваш код более компактным.

источник

👉@DevLab1C
🔥4👍3
Вывод диалога вопроса с заголовком и нужными кнопками (немодально) в 1С 8.3


&НаКлиенте
Процедура ВыводДиалогаВопроса(Команда)

Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект);
ПоказатьВопрос(Оповещение, "Загрузить список банков?", РежимДиалогаВопрос.ДаНетОтмена, 0, КодВозвратаДиалога.Да, "Список банков 2023г.");

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

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт

Если Результат = КодВозвратаДиалога.Да Тогда
Сообщить("Список банков с сайта https://www.cbr.ru загружен!");
КонецЕсли;

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


👉@DevLab1C
🔥3👍1
Набор скриптов для знакомства с MS SQL Server


Базовая информация о сервере

Начнем с основной информации.


-- Имена сервера и экземпляра
Select @@SERVERNAME as [Server\Instance];

-- версия SQL Server
Select @@VERSION as SQLServerVersion;

-- экземпляр SQL Server
Select @@ServiceName AS ServiceInstance;

-- Текущая БД (БД, в контексте которой выполняется запрос)
Select DB_NAME() AS CurrentDB_Name;


Теперь мы знаем какая версия SQL Server используется, имя экземпляра и сервера.
Хотя есть подозрение, что имя экземпляра Вы знали еще до подключения к нему 🙂
Версия СУБД может пригодиться для определения какие возможности у нее есть, известные баги и др.


Время работы с момента запуска

В большинстве вопросов диагностики производительности и стабильности важно знать сколько времени уже запущен экземпляр SQL Server.


SELECT @@Servername AS ServerName ,
create_date AS ServerStarted ,
DATEDIFF(s, create_date, GETDATE()) / 86400.0 AS DaysRunning ,
DATEDIFF(s, create_date, GETDATE()) AS SecondsRunnig
FROM sys.databases
WHERE name = 'tempdb';


Здесь мы получили имя сервера, дату его запуска, а также продолжительность работы сервера в днях и секундах. Для этого мы использовали дату создания базы TempDB, которая создается в момент запуска SQL Server.
Почему эта информация так важна? Сам SQL Server собирает статистику различных показателей (как используются индексы, информацию о недостающих индексах, планы запросов и др.). Чем дольше сервер работает, тем точнее собранная статистика.
Представьте, что Вы запустили сервер 5 минут назад, смотрите что информации о недостающих индексов нет. Правильно ли было полагаться на эти данные, которые были собраны за 5 минут?


Количество активных соединений

Еще одним очень важным моментом может быть количество активных соединений со SQL Server.

-- Похожая информация, может быть получена с помощью sp_who


SELECT @@Servername AS Server ,
DB_NAME(database_id) AS DatabaseName ,
COUNT(database_id) AS Connections ,
Login_name AS LoginName ,
MIN(Login_Time) AS Login_Time ,
MIN(COALESCE(last_request_end_time, last_request_start_time))
AS Last_Batch
FROM sys.dm_exec_sessions
WHERE database_id > 0
AND DB_NAME(database_id) NOT IN ( 'master', 'msdb' )
GROUP BY database_id ,
login_name
ORDER BY DatabaseName;


Эта информация может пригодиться в следующих случаях:
Отслеживание количества соединений для контроля лицензионной "чистоты".
Для контроля подключения к базе данных.
Для сбора статистики интенсивности работы с СУБД.
Расследование проблем "зависших" соединений.
И др.

👉@DevLab1C
🔥2👍1
Набор скриптов для знакомства с MS SQL Server

Информация о бэкапах

Резервное копирование - очень важно. Об этом уже так много было сказано, но случаев когда им пренебрегают до сих пор очень много. Узнаем дату последнего бэкапа тех баз, которые расположены на изучаемом сервере.

SELECT @@Servername AS ServerName ,
d.Name AS DBName ,
MAX(b.backup_finish_date) AS LastBackupCompleted
FROM sys.databases d
LEFT OUTER JOIN msdb..backupset b
ON b.database_name = d.name
AND b.[type] = 'D'
GROUP BY d.Name
ORDER BY d.Name;


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

SELECT @@Servername AS ServerName ,
d.Name AS DBName ,
b.Backup_finish_date ,
bmf.Physical_Device_name
FROM sys.databases d
INNER JOIN msdb..backupset b ON b.database_name = d.name
AND b.[type] = 'D'
INNER JOIN msdb.dbo.backupmediafamily bmf ON b.media_set_id = bmf.media_set_id
ORDER BY d.NAME ,
b.Backup_finish_date DESC;


Теперь мы знаем есть ли настроенное резервное копирование. Ну или хотя бы ручной запуск бэкапирования.

👉@DevLab1C
👍4🔥1
Как измененить/получить заголовок окна в 1С 8.3


&НаКлиенте
Процедура ПолучениеИзменениеЗаголовкаОкна(Команда)

ПерваяЧасть_короткая_Префикс=ПолучитьКраткийЗаголовокПриложения(); // Часто пустой
ВтораяЧасть_длинная=ПолучитьЗаголовокКлиентскогоПриложения(); // Название конфигурации, например ЗУП 3.1

// Переименуем в новый заголовок - ЗУП3.Акваферма
УстановитьКраткийЗаголовокПриложения("ЗУП3");
УстановитьЗаголовокКлиентскогоПриложения("Акваферма");

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


👉@DevLab1C
🔥3👍1
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