Оставлю здесь, добрый архив местами все устарело, для актуальной части заметок сделаю UPD. Адрес новый sysbudni.ru
Общее·количество·просмотров·страницы
вторник, 22 сентября 2026 г.
понедельник, 26 июля 2021 г.
Outlook подключение почты gmail. Ошибка Application-specific password required
При подключении почты gmail к outlook, может возникать такая ошибка если включена двойная верификация. Теперь для приложений необходимо генерировать отдельные пароли.
Заходим по ссылке: https://security.google.com/settings/security/apppasswords генерируем пароль для outlook, настраиваем учетку.
вторник, 13 июля 2021 г.
Как проверить относится ли объект к ссылочному типу данных
В БСП, есть специальная функция ЗначениеСсылочногоТипа(), она экспортная находится в модуле ОбщегоНазначения.
Пример вызова
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(Заказы) Тогда
...
На примере базы ЕРП 2.4
вторник, 16 марта 2021 г.
1С, СКД. Программно получить значение параметров отчета из пользовательских настроек.
Разберем пример получение значения из пользовательских параметров отчета СКД.
Добавим параметр Валюта в схему компоновки данных, получаем его не из условий запроса а вводим вручную.
Добавим вывод в пользовательские настройки.
Далее в модуле объекта отчета, опишем получение параметра в процедуре ПриКомпоновкеРезультата, она вызывается в момент формирования отчета.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
УстановитьПривилегированныйРежим(Истина);
НастройкиПользователя = ПолучитьНастройкиПользователяФранчайзи();
ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("Валюта");
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки);
Если ПараметрСКД <> Неопределено Тогда
ПользовательскийПараметрВалюты = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрСКД.ИдентификаторПользовательскойНастройки);
Если ПользовательскийПараметрВалюты <> Неопределено Тогда
ВалютаВНастройках = ПользовательскийПараметрВалюты.Значение;
КонецЕсли;
КонецЕсли;
Кратко поясню, ПараметрКомпоновки создаем новый объект и даем ему наименование сходное с нашим параметром "Валюта". Затем получаем параметр из компоновщика настроек.
И по уникальному идентификатору выполняем поиск в пользовательских настройках компоновщика данных.
понедельник, 16 марта 2020 г.
Программная обработка выделенных строк динамического списка.
ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;
Для Каждого Строка Из ВыделенныеСтроки Цикл
Элементы.Список.ДанныеСтроки(Строка).ТвойРеквизит;
КонецЦикла;
вторник, 11 февраля 2020 г.
1С. Программная работа с буфером обмена.
&НаКлиенте
Функция ПолучитьТекстБуфераОбмена() Экспорт
#Если Клиент Тогда
Объект = Новый COMОбъект("htmlfile");
Возврат Объект.ParentWindow.ClipboardData.Getdata("Text");
#КонецЕсли
КонецФункции
&НаКлиенте
Функция УстановитьТекстВБуферОбмена(Текст) Экспорт
#Если Клиент Тогда
Объект = Новый COMОбъект("htmlfile");
Объект.ParentWindow.ClipboardData.Setdata("Text", Текст);
Возврат Текст;
#КонецЕсли
КонецФункции
Через COM объект.
понедельник, 10 февраля 2020 г.
1С. Как в контексте формы проверить открыта форма нового документа или существующего
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Ключ = Документы.Задача.ПустаяСсылка() Тогда
Объект.Статус = Перечисления.Статус_Задачи.ВПроцессе;
КонецЕсли;
КонецПроцедуры
Проверку выполняем в событии при создании на сервере, сравниваем с пустой ссылкой на искомый документ.
суббота, 8 февраля 2020 г.
1С. Как понять открылась ли форма подчиненного справочника от владельца или нет.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Отбор.Свойство("Владелец") Тогда
Элементы.Код.Видимость = Ложь;
КонецЕсли;
КонецПроцедурыВсе просто проверяем структуру отбор на наличие свойства "Владелец".
понедельник, 9 декабря 2019 г.
понедельник, 2 декабря 2019 г.
1С управляемое приложение обратиться из формы обработки к модулю обработки
&НаСервере
Функция ОбратитсяКМодулюОбъектаОбработки()
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
ОбъектОбработки.ПроцедураМодуляОбъекта();
КонецФункции // ПолучитьКлиентПутьКлиентаHelpDesk()
1С определить тип клиента запущенного приложения программно
&НаКлиенте
Функция ПолучитьТекущуюСредуВыполнения() Экспорт
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
Возврат "Толстый клиент";
#ИначеЕсли Сервер Тогда
Возврат "Сервер";
#ИначеЕсли ВнешнееСоединение Тогда
Возврат "Внешнее соединение";
#ИначеЕсли ТонкийКлиент Тогда
Возврат "Тонкий клиент";
#ИначеЕсли ВебКлиент Тогда
Возврат "Веб-клиент";
#Иначе
Возврат "Ошибка определения среды выполнения";
#КонецЕсли
КонецФункции //ПолучитьТекущуюСредуВыполнения
воскресенье, 1 декабря 2019 г.
1С работа с переменными среды Windows
Shell = Новый COMОбъект("WScript.Shell");
LOCALAPPDATA = Shell.ExpandEnvironmentStrings("%LOCALAPPDATA%");
КаталогКэша = LOCALAPPDATA + "\Microsoft\Windows\Temporary Internet Files";пятница, 29 ноября 2019 г.
1С, как узнать версию БСП?
Сообщить(СтандартныеПодсистемыСервер.ВерсияБиблиотеки());вторник, 26 ноября 2019 г.
1С, программное создание и заполнение документов "Перенос данных" и "Корректировка регистров"
НовыйПереносДанных = Документы.ПереносДанных.СоздатьДокумент();
НовыйПереносДанных.Дата = ТекущаяДата();//выберем движения по документу
ДвиженияПереносДанных = НовыйПереносДанных.Движения; //добавляем табличную часть регистра в документ, обязательно указываем имя регистра
НовыйПереносДанныхРН = НовыйПереносДанных.ТаблицаРегистров.Добавить();
НовыйПереносДанныхРН.Имя = "ВзаиморасчетыСДепонентами";//выбираем движения по регистру
ВзаиморасчетыСДепонентами = ДвиженияПереносДанных.ВзаиморасчетыСДепонентами;
НовыйПереносДанных.Записать(); //обязательно записываем документ т.к. нужна ссылка на регистратор
Строка = ВзаиморасчетыСДепонентами.Добавить(); //добавляем движения
Строка.Период = ДатаРегистрацииДвижений;
Строка.Регистратор = НовыйПереносДанных.Ссылка;
Строка.ВидДвижения = ВидДвиженияНакопления.Приход;
Строка.Ведомость = ВедомостьНаВыплатуЗарплатыВКассу;
Строка.Активность = Истина;
Строка.Организация = ОрганизацияДляДвижения;
Строка.ФизическоеЛицо = ФизЛицоДляДвижения;
Строка.Сумма = Сумма;
//записываем сначала движения затем документ
ВзаиморасчетыСДепонентами.Записать();
НовыйПереносДанных.Записать();
понедельник, 25 ноября 2019 г.
1С отладка фоновых заданий.
Возьмем к примеру конфигурацию ЗУП 3.1, общий модуль "ДлительныеОперации", функцию "ВыполнитьВФоне", фрагмент функции:
// Выполнить в фоне.
Попытка
Задание = ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяПроцедуры, ПараметрыВыполнения, ПараметрыЭкспортнойПроцедуры);
Исключение
Результат.Статус = "Ошибка";
Если Задание <> Неопределено И Задание.ИнформацияОбОшибке <> Неопределено Тогда
Результат.КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(Задание.ИнформацияОбОшибке);
Результат.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(Задание.ИнформацияОбОшибке);
Иначе
Результат.КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Результат.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецЕсли;
Возврат Результат;
КонецПопытки;
[Отладка] - [Подключение...]
Команда "Автоматическое подключение" - и устанавливаем отметки на: Клиентские и внешние соединения, Фоновые задания. Перезапускаем отладку.
Как программно узнать под какой ОС запущена 1С
// Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Linux.
//
// Возвращаемое значение:
// Булево - Истина, если сервер работает под управлением ОС Linux.
//
Функция ЭтоLinuxСервер() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64;
КонецФункции
Как программно получить версию ComConnector
Как обратиться к общим картинкам программно?
воскресенье, 24 ноября 2019 г.
Регистрация V83.COMConnector
Открываем командную строку. Win+R "cmd", от имени Администратора.
V83.COMConnector, пример строки регистрации (измените путь на нужную версию):
32 разрядная платформа
regsvr32 “C:\Program Files (x86)\1cv8\8.3.6.2152\bin\comcntr.dll”
64 разрядная платформа
regsvr32 “C:\Program Files\1cv8\8.3.6.2152\bin\comcntr.dll”


