Логотип

1C программист

Cтатьи, курсы, советы, шаблоны кода 1С.
Подписчики
283
За 24 часа
+14
08:57 13-10-2025
Самый простой способ загрузки Эксель (Excel) в 1С!

источник

✍️ @odin1C_rus
11:28 10-10-2025
Варианты работы базой 1С: файловый и клиент-серверный

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

источник

✍️ @odin1C_rus
09:12 08-10-2025
Получить web-cсылку на объект метаданных

Примеры использования: для запуска ДО из других конфигураций или из Битрикс24 и т.п. интеграций


Функция ПолучитьWebСсылкуНаОбъект(Объект) Экспорт

НавСсылка = ПолучитьНавигационнуюСсылку(Объект);
ДлинаСтроки = СтрДлина(НавСсылка);
ПозицияРеф = СтрНайти(НавСсылка, "?ref");
НавСсылка = Прав(НавСсылка, ДлинаСтроки - ПозицияРеф + 1) + "#" + Лев(НавСсылка, ПозицияРеф - 1);
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
srv = НСтр(СтрокаСоединения, "Srvr");
ref = НСтр(СтрокаСоединения, "Ref");
НавСсылка = "e1c://server/"+ srv + "/" + ref + НавСсылка;
Возврат НавСсылка;

КонецФункции
Если ссылки e1c не открываются, то необходимо текст ниже сохранить в файл с расширением reg и запустить его:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\e1c]
"EditFlags"=hex:02,00,00,00
"URL Protocol"="e1c"
@="URL:e1c"

[HKEY_CLASSES_ROOT\e1c\DefaultIcon]
@="C:\\Program Files (x86)\\1cv8\\common\\1ceunt.dll,17"

[HKEY_CLASSES_ROOT\e1c\shell]

[HKEY_CLASSES_ROOT\e1c\shell\open]

[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@=""C:\Program Files (x86)\1cv8\common\1cestart.exe" /URL "%1""

Автор: RomanVG

✍️ @odin1C_rus
09:12 07-10-2025
Выгрузить динамический список в таблицу значений

&НаСервере
Функция ПолучитьТЗизДинамическогоСписка()

Схема = Элементы.Сделки.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
Настройки = Элементы.Сделки.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

ТабЗначений = Новый ТаблицаЗначений;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ТабЗначений);
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

Возврат ТабЗначений;

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


Автор: RomanVG

✍️ @odin1C_rus
08:56 05-10-2025
Простые диаграммы в 1С

источник

✍️ @odin1C_rus
09:37 02-10-2025
Преобразование отчета на СКД в таблицу значений на табличном документе


Иногда с отчетами удобнее (или быстрее) работать в MS Excel, например, когда необходимо связать несколько разных отчетов. Если отчеты выводятся с группировкой, то связать их бывает проблематично. Если у отчета нет своей формы, то можно применить такое универсальное решение.

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


&НаСервере
Процедура ВыгрузитьПлоскуюТаблицуНаСервере()

Результат = Новый ТаблицаЗначений;

Попытка

ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных;
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);

ОтчетТабличныйДокумент.Очистить();
Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Результат);
Построитель.Вывести(ОтчетТабличныйДокумент);

Исключение
Сообщить("Не удалось отобразить исходные данные, возможно выводятся несколько разнородных таблиц.
|Перейдите в настройки и оставьте только одну необходимую таблицу.");
КонецПопытки;

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

&НаКлиенте
Процедура ВыгрузитьПлоскуюТаблицу(Команда)
ВыгрузитьПлоскуюТаблицуНаСервере();
КонецПроцедуры

Если часть параметров или отборов заполняется в процедуре ПриКомпоновкеРезультата, то могут возникнуть ошибки.

Автор: RomanVG

✍️ @odin1C_rus