Практика: Передаем произвольный параметр и открываем форму выбранной нами дополнительной обработки

Публикация № 1109416

Разработка - Практика программирования

В этой статье я решил собрать 2 практических случая, которые используются не так часто, но которые нужно знать, чтобы вообще знать, что так можно. Все это я решил сделать и показать в одной конфигурации на базе БСП.

В этой статье я решил собрать 2 практических случая, которые используются не так часто, но которые нужно знать, чтобы вообще знать что так можно. Все это я решил сделать и показать в одной конфигурации на базе БСП. Для данного примера скачал с официального сайта 1с (https://releases.1c.ru/) версию БСП 3.0.1.428.

1. Передача пользовательского параметра в управляемое приложение.

Варианты передачи пользовательского параметра.

УП (управляемое приложение) может принимать пользовательские параметры, которые могут передаваться из других приложений. Этот параметр можно обработать произвольным образом. В данной статье в зависимости от его значения будем открывать разные дополнительные обработки, которые используются в любой конфигурации на БСП (библиотеки стандартных подсистем). Существует множество способов передать пользовательский параметр в управляемое приложение, все их описать не представляется возможным, поэтому расскажу про 3 самых простых для меня:

Просто через командную строку (Выполнить > cmd)

"C:\Program Files (x86)\1cv8\8.3.14.1779\bin\1cv8.exe" ENTERPRISE /F C:\Users\konstantin.skvortsov\Documents\1C\DemoSSL1 /C МойПараметр /N Администратор /P

В этом случае можно просто указать полный путь к базе 1С и необходимый минимум параметров: "C:\Program Files (x86)\1cv8\8.3.14.1779\bin\1cv8.exe" 


Через “батник” (.bat файл)
Все то же самое, только в файле:

echo "Запускаем 1С..." 
"C:\Program Files (x86)\1cv8\8.3.14.1779\bin\1cv8.exe" ENTERPRISE /F C:\Users\konstantin.skvortsov\Documents\1C\DemoSSL1 /C МойПараметр /N Администратор /P 
Pause

Pause нужно для того, чтобы окно не закрылось, как правило останавливать выполнение скрипта считается плохим тоном. Если не установить кодировку 866, то система не сможет корректно прочитать кириллицу.


Вызов через скрипт visual basic (.vbs скрипт)
Пример vbs:

Option Explicit
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run """C:\Program Files (x86)\1cv8\8.3.14.1779\bin\1cv8.exe"" ENTERPRISE /F C:\Users\konstantin.skvortsov\Documents\1C\DemoSSL1 /C МойПараметр /N Администратор /P ",1,false
Set WshShell = Nothing

Чтобы не было проблем с кириллицей, можно сохранить в кодировке Windows-1251.

/C [строка текста] — передача параметра в конфигурацию.
Хорошая статья про запуск 1С с параметрами: //mag.itwonline.ru/public/104654/

При отладке параметр можно передавать из конфигуратора:

2. Открытие дополнительной обработки на начальной странице.

Создаем новую обработку.

В конфигурации БиблиотекаСтандартныхПодсистемДемо добавляем новую обработку, предварительно включив возможность редактирования:

 

Переименуем обработку, например, в ОсновноеРабочееМестоПользователя. В модуле управляемого приложения в событии ПриНачалеРаботыСистемы прописываем следующий код:


Процедура ПриНачалеРаботыСистемы()
	
	// СтандартныеПодсистемы
	СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы();
	// Конец СтандартныеПодсистемы
	
	ПередаваемыйПараметр = ПараметрЗапуска;
	
	ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("ПередаваемыйПараметр", ПередаваемыйПараметр);
	
	Если ЗначениеЗаполнено(ПередаваемыйПараметр) Тогда
		ОткрытьФорму("Обработка.ОсновноеРабочееМестоПользователя.Форма.Форма", ПараметрыОткрытия);
	КонецЕсли;
	
КонецПроцедуры

ПараметрЗапуска - это параметр глобального контекста, доступный на клиенте и содержащий значение типа Строка с передаваемым в конфигурацию параметром через ключ командной строки /C. В Метод ОткрытьФорму() передадим ПараметрыОткрытия с передаваемым параметром.


Создадим обработку “Моя обработка”.

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

В модуле объекта напишем:


/////////////////////////////////////////////////////////////////////////
// ********************************************************************
// Функции для использования системой БСП
//Функция ВерсияСтандартныхФункцийОтчетов()
	//Версия стандартных подсистем 3.0.1.428

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.0.1.428");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "06.08.2019";
	ПараметрыРегистрации.Вставить("Информация", 
			"Моя обработка.
			|
			|История изменений:
			|06.08.2019
			|			Первая версия.
			|");
	ПараметрыРегистрации.БезопасныйРежим	=	Ложь;
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = НСтр("ru = Моя обработка");
    Команда.Идентификатор = "МояОбработка";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    Команда.ПоказыватьОповещение = Ложь;

    Возврат ПараметрыРегистрации; 
КонецФункции

В Функции СведенияОВнешнейОбработке() получим ПараметрыРегистрации:
- укажем версию (удобнее всего указывать дату, сразу понятно что за версия);
- вставим в них новое свойство “Информация”, и нашей информацией;
- укажем БезопасныйРежим = Ложь;
- добавим новую команду, укажем представление, идентификатор, тип команды в свойстве Использование и ПоказыватьОповещение = Ложь;

Создадим форму обработки и назначим ее как основная. На форме создадим декорацию и укажем у нее Заголовок “Это моя обработка”.

После того как подключим, по имени обработки (он же ИдентификаторОбработки по которому в системе определяется уникальность обработки), можно будет к ней обращаться.

 

Создадим обработку “Моя новая обработка”.

По такому же принципу создадим еще одну дополнительную обработку, но с идентификатором МояНоваяОбработка. Теперь у нас есть выбор из двух обработок, и в зависимости от значения передаваемого параметра мы можем выбирать любую. Чтобы не было совсем скучно на форме нашей новой обработки помимо декорации давайте создадим новую Группу вида Коммандная панель.

А в ней Подгруппу вида Подменю.

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

 

В модуле объекта нашей второй обработки МояНоваяОбработка напишем:


/////////////////////////////////////////////////////////////////////////
// ********************************************************************
// Функции для использования системой БСП
//Функция ВерсияСтандартныхФункцийОтчетов()
	//Версия стандартных подсистем 3.0.1.428

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.0.1.428");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "06.08.2019";
	ПараметрыРегистрации.Вставить("Информация", 
			"Моя обработка.
			|
			|История изменений:
			|06.08.2019
			|			Первая версия.
			|");
	ПараметрыРегистрации.БезопасныйРежим	=	Ложь;
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = НСтр("ru = Моя новая обработка");
    Команда.Идентификатор = "МояНоваяОбработка";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    Команда.ПоказыватьОповещение = Ложь;

    Возврат ПараметрыРегистрации; 
КонецФункции

Вернемся к встроенной в конфигурацию обработке.

Теперь вернемся к встроенной в конфигурацию обработке ОсновноеРабочееМестоПользователя и в форме в событии ПриСозданииНаСервере напишем:


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

Далее создадим новую процедуру ОткрытьФормуОбработки и в событии ПриОткрытии ее вызовем:


&НаКлиенте
Процедура ПриОткрытии(Отказ)
		ПодключитьОбработчикОжидания("ОткрытьФормуОбработки",1,Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуОбработки() Экспорт
	
	Если ЗначениеЗаполнено(ДополнительнаяОбработкаДляРабочегоМеста) Тогда
		
		мПараметры = новый Структура;                                                                                                                   
		ИмяОбработки = ПодключитьВнешнююОбработку();
		ОткрытьФорму("ВнешняяОбработка."+ИмяОбработки+".Форма",мПараметры,ЭтаФорма,ЭтаФорма.УникальныйИдентификатор,ЭтаФорма.Окно);
		
	КонецЕсли;	

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


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


&НаСервере
Функция ПодключитьВнешнююОбработку()
	
	
	СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДополнительнаяОбработкаДляРабочегоМеста,"ХранилищеОбработки,БезопасныйРежим");
	ХранилищеОбработки = СтруктураРеквизитов.ХранилищеОбработки;
	ДвоичныеДанные = ХранилищеОбработки.Получить();
	АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
	

	ОписаниеЗащитыОтОпасныхДействий = новый ОписаниеЗащитыОтОпасныхДействий();
	ОписаниеЗащитыОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = СтруктураРеквизитов.БезопасныйРежим;
	
	БезопасныйРежим = СтруктураРеквизитов.БезопасныйРежим;
	
	Попытка
    	Возврат ВнешниеОбработки.Подключить(АдресХранилища,,БезопасныйРежим,ОписаниеЗащитыОтОпасныхДействий);
	Исключение
		Возврат ВнешниеОбработки.Подключить(АдресХранилища,,БезопасныйРежим);
	КонецПопытки;

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

В Функции ПодключитьВнешнююОбработку() подключается обработка из справочника ДополнительныеОбработкиИОтчеты. Метод ОбщегоНазначения.ЗначенияРеквизитовОбъекта() получает сразу одним запросом значение двух реквизитов и возращает их в структуре. Затем из ХранилищеОбработки получаем данные обработки в бинарном формате (ДвоичныеДанные), помещаем во временное хранилище, чтобы методом ВнешниеОбработки.Подключить(), можно было подключить эту обработку в системе и затем уже обращаться к ней в строковом параметре метода ОткрытьФорму().

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

Если мы будем передавать пользовательский параметр “МояОбработка”, откроется наша первая обработка, если параметр “МояНоваяОбработка”, откроется наша вторая обработка.

Как видно на скриншоте, в открытой обработке ОсновноеРабочееМестоПользователя мы программно подключили другую обработку, которую определили в нашем пользовательском параметре и открыли основную форму этой обработки внутри окна другой формы.

P.S. Мои методы не претендуют на истину в последней инстанции. Тут я просто делюсь своими практическими приемами, с которыми сталкивался в своей практике и которые, по моему мнению будут интересны в основном для начинающих разработчиков. Ведь согласитесь, не каждый день приходится открывать окна одно внутри другого, но просто нужно знать, что так сделать можно.

Специальные предложения

Лучшие комментарии
12. skv_79 207 21.08.19 19:52 Сейчас в теме
Добавил доп. обработки в конфигурацию и выложил в гит:
https://github.com/KonstantinSkvortsov/PeredachaParametra1C
Остальные комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. ivanov660 2093 19.08.19 09:18 Сейчас в теме
Предлагаю еще один вариант: через промежуточное хранилище данных (к примеру, регистр сведений безопасное хранилище данных из БСП) - изначально сохранили настройки, а при открытии учитываем и обрабатываем.
2. skv_79 207 19.08.19 10:11 Сейчас в теме
(1)
вариант: через промежуточное хранилище данных (к примеру, регистр сведений безопасное хранилище данных из БСП) - изначально сохранили настройки, а при открытии учитываем и обрабатываем

Да, так тоже можно, но параметр, как мне кажется используется не так часто как хранилище значений, и поэтому иногда забывается то, что можно так просто передать в приложение какие-либо данные из внешнего приложения, вспоминая о каких-то других способах. Даже сначала про веб-сервисы и COM вспоминают, и только потом, поняв что задача не требует таких сложностей и можно через обычный параметр из внешнего приложения.
3. qwinter 620 19.08.19 10:19 Сейчас в теме
Остается только риторический вопрос "зачем?")))
4. skv_79 207 19.08.19 10:23 Сейчас в теме
(3) Это из практики, значит я когда-то такое делал. В данном случае нужно было из одного приложения не на языке 1С запускать конфигурацию ERP и открывать форму подбора товаров в знакомом пользователям интерфейсе, для этого использовался пользовательский параметр, в котором передавалась информация о сеансе пользователя, а обратно уже по веб-сервису возвращалось в зависимости от переданных в параметре данных. Согласен, что звучит как костыль, но решение такое было и вполне работало.
5. qwinter 620 19.08.19 10:53 Сейчас в теме
(4)
В данном случае нужно было из одного приложения не на языке 1С запускать конфигурацию ERP и открывать форму подбора товаров в знакомом пользователям интерфейсе, для этого использовался пользовательский параметр, в котором передавалась информация о сеансе пользователя, а обратно уже по веб-сервису возвращалось в зависимости от переданных в параметре данных. Согласен, что звучит как костыль
Это и есть костыль, причем жуткий и кривой. Для подобных задач используется automation client/server.
6. alex_bob 222 19.08.19 11:15 Сейчас в теме
(5)
Это и есть костыль, причем жуткий и кривой. Для подобных задач используется automation client/server.

Windows сейчас далеко не везде.
8. qwinter 620 19.08.19 16:00 Сейчас в теме
(6) для никсов это еще больший костыль, я бы даже сказал КОСТЫЛИЩЕ!!!!, в виду полного сохранения всех выполняемых команд)))))) Хотя если целью было собрать пароли пользователей, не имея администраторского доступа к базе 1С то подойдет)))
10. skv_79 207 19.08.19 17:01 Сейчас в теме
(8) Можно не писать пароль, параметр-то передастся.
7. skv_79 207 19.08.19 15:03 Сейчас в теме
(5)
client/server.

Согласен что костыль, но на мой взгляд, все-же более универсальный в отличии от Automation.
9. qwinter 620 19.08.19 16:00 Сейчас в теме
11. skv_79 207 19.08.19 17:02 Сейчас в теме
(9) Не совсем точно выразился, не универсальный а многоплатформенный.
12. skv_79 207 21.08.19 19:52 Сейчас в теме
Добавил доп. обработки в конфигурацию и выложил в гит:
https://github.com/KonstantinSkvortsov/PeredachaParametra1C
13. skv_79 207 21.08.19 19:52 Сейчас в теме
14. ХамитоваРайса 23.08.19 10:18 Сейчас в теме
Добрый день) Не смогла разархивировать, ругается на длинные имена и символы в именах файлов и каталогов
15. skv_79 207 26.08.19 13:56 Сейчас в теме
(14) Добрый, попробуйте положить ближе к корню диска.
16. skv_79 207 26.08.19 13:57 Сейчас в теме
(14) А еще лучше воспользуйтесь EDT.
Оставьте свое сообщение

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

Практика программирования v8 Бесплатно (free)

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

22.04.2020    3281    23    infostart    2    

Универсальные инструменты 1С

Универсальные обработки Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

21.01.2020    18585    295    cprit    84    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

15.01.2020    15831    0    John_d    22    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    25568    0    Yashazz    45    

Онлайн-курс "1С:Специалист-консультант по "1С:Зарплата и управление персоналом" 22-25 июня 2020 года Промо

Решение задач на 1С:Специалист Бухгалтерский учет Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x БУ УУ Бесплатно (free)

Спрос на специалистов по внедрению "1С:Зарплата и управление персоналом 8" с каждым днем растет. Станьте одним из востребованных специалистов - пройдите обучение по актуальной редакции 1C:ЗУП 3.1.

13200 руб.

14.06.2018    10086    3    4    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    35096    0    rpgshnik    60    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    37253    0    ids79    52    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    56656    0    ids79    37    

Подсистема "Инструменты разработчика" v5.35 Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Интегрированный набор инструментов разработчика: - консоль кода - консоль запросов - консоль построителя отчетов - консоль компоновки данных - консоль заданий - конструктор запроса - справочник алгоритмов - исследователь объектов - интерфейсная панель - настройка журнала регистрации - анализ журнала регистрации - настройка техножурнала - анализ техножурнала - подбор и обработка объектов - редактор объекта БД - редактор констант - редактор параметров сеанса - редактор изменений по плану обмена - редактор пользователей - редактор предопределенных - редактор хранилищ настроек - динамический список - поиск дублей и замена ссылок - контекстная подсказка - синтакс-помощник - поиск битых ссылок - поиск ссылок на объект - структура хранения БД - удаление объектов с контролем ссылок - и прочее

23.09.2007    476339    4340    tormozit    2665    

Обработчики событий при записи объектов. Зачем и что за чем?

Математика и алгоритмы v8 Бесплатно (free)

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    36158    4    AlbinaAAA    25    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    42513    0    ids79    20    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    34592    0    YPermitin    52    

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Администрирование данных 1С Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    57921    0    user700211_a.straltsou    27    

Как прикрутить ГУИД к регистру сведений

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    17825    0    m-rv    17    

Excel vs 1С: битва с неожиданным исходом

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    33837    0    bolefirenko    116    

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

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

15.01.2019    20265    0    itriot11    22    

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке

Универсальные функции Зарплата Управление персоналом (HRM) Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Бесплатно (free)

В статье размещен список стандартных процедур и функций с примерами, которые могут помочь при разработке (доработке) конфигураций Зарплата и управление персоналом ред. 3.1 и Зарплата и кадры государственного учреждения 3.1. Иногда бывает довольно сложно правильно получить данные или долго, поэтому лучшим вариантом будет использование стандартных процедур. Буду очень признателен, если Вы поделитесь своим опытом и предложите свои варианты стандартных процедур которые помогают в работе. Или предложите, как дополнить имеющиеся процедуры.

14.11.2018    68717    0    GeterX    111    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    30700    0    ids79    40    

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

Инструментарий разработчика Управление проектом v8 1cv8.cf Бесплатно (free)

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    57999    0    stas_ganiev    73    

Обмен данными. Консистентность vs Многопоточность Промо

Интеграция v8 1cv8.cf Бесплатно (free)

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

03.09.2019    10545    0    m-rv    1    

Из Excel в 1С запросом

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

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

14.08.2018    18758    0    m-rv    5    

Тестер: частые вопросы

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    26333    0    grumagargler    26    

Повышаем эффективность разработки правил обмена

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    26187    0    olegtymko    47    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    34259    0    unichkin    45    

Как сделать запрос на изменение данных

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    27482    0    m-rv    21    

Строим графы средствами 1С (без GraphViz)

Практика программирования v8 Бесплатно (free)

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    22918    0    slozhenikin_com    20    

Распределение расходов пропорционально продажам

Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Практика программирования Финансовый учет и бюджетирование (FRP) Учет доходов и расходов v8 v8::ОУ УТ10 УУ Бесплатно (free)

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    17040    0    Rustig    9    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    26268    0    tormozit    100    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть І: Справочники

Перенос данных из 1C8 в 1C8 v8 Бесплатно (free)

Сейчас все чаще интеграции различных конфигураций проектируются через HTTP-сервисы - они и работают быстрее, и "войти" в режим отладки гораздо проще, тем самым обойдя "черный ящик" универсального обмена через xml, например. Более года назад я начал работать в компании, в которой разработчики работали с конфигурациями 1С в режиме совместимости еще 8.2.16 (менять режим совместимости в типичных базах мы не хотели) - а как Вы наверное знаете, если интересовались HTTP-сервисами в 1С, их использование в режиме совместимости 8.3.4 и ниже недопустимо - и здесь я уже не надеялся на разработку и использование HTTP-сервисов. Но позже меня заинтересовал такой "сервис" как REST интерфейс OData, так как его можно использовать не меняя режим совместимости конфигурации - именно он и стал для меня идеальным вариантом решения "нетривиальных" задач.

11.05.2018    21164    0    V.Stavinsky    11    

Минимализмы 3

Практика программирования Универсальные функции v8 Бесплатно (free)

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    43941    0    ildarovich    45    

Этюды по программированию. Взаимодействие с Microsoft Word

Практика программирования v8 Бесплатно (free)

Часто приходится заниматься созданием сложных документов Word с таблицами, вложенными фрагментами, хитрым оформлением и прочими радостями жизни. Это - попытка как-то структурировать полученный опыт, чтобы не приходилось перерывать ворох старых обработок в поисках крупиц истины. Надеюсь, эта статья будет полезна и Вам.

11.12.2017    30989    0    milkers    23    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012    73772    0    tormozit    129    

Метод формирования движений в типовых регистрах нетиповыми регистраторами

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    25781    0    itriot11    34    

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена)

Перенос данных из 1C8 в 1C8 Практика программирования Обмен через XML v8 КД Бесплатно (free)

Что такое КД3? Как начать использовать? Полезные дополнения к документации. Что нужно исправить в типовых обработках и конфигурации. Как изменить правила обмена не снимая конфигурацию с поддержки. Как отлаживать правила обмена?

19.11.2017    177251    0    MaxS    270    

Обзор имеющихся библиотек OneScript

OneScript v8 Бесплатно (free)

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

14.11.2017    40793    0    nixel    86    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    44834    0    tormozit    38    

Программные перечисления, ч.2: приемы кэширования при разработке

Практика программирования v8 Бесплатно (free)

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

30.10.2017    25711    0    unichkin    18    

Легкий способ обновления измененной конфигурации

Инструментарий разработчика v8 Бесплатно (free)

Легкий способ обновления измененной конфигурации. Сервис подготовки расширения конфигурации

25.10.2017    22131    0    avk72    63    

Работа с Excel

Практика программирования Загрузка и выгрузка в Excel v8 Бесплатно (free)

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

23.10.2017    39166    0    arakelyan    39    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    40636    0    tormozit    72    

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

Практика программирования v8 Бесплатно (free)

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

04.09.2017    50052    0    m-rv    60    

Как просто запомнить алгоритм программного вывода в СКД

Практика программирования v8 v8::СКД Бесплатно (free)

Порой нужно быстро вывести на экран таблицу значений, используя СКД \ получить данные отчета в таблицу значений.. Несмотря на очевидность алгоритма - раньше мне проще было загуглить программный вывод, благо эта инфа есть везде. Но постепенно понял как его можно быстро вспомнить, и лишний раз ничего не искать. Конечно эта статья не для Гуру :) Но я думаю - что любой неопытный в СКД программист сделает для себя небольшое открытие...

01.09.2017    47105    0    unichkin    15    

Как формируется GUID?

Практика программирования v8 Бесплатно (free)

"Коллеги, есть идеи, как получить последнюю созданную характеристику? Реквизиты полностью идентичны(код, наименование, и т.п.)."(c) "Насколько я знаю, ссылка не обеспечивает последовательность, а только уникальность."(c) "Я сделал по Максимум(Ссылка). Но, чета, мне кажется, это неправильно."(c) "Слышал что в ГУИд содержится как раз время создания и по всей логике вещей сортировка по ссылке должна сортировать по моменту создания объекта"(c) Сколько раз вы слышали такие фразы? На удивление я не обнаружил информации по этой теме, пришлось разбираться самому...

16.06.2017    70800    0    kuzyara    57    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    14229    0    m-rv    2    

Использование инструментов разработчика для отладки обменов КД 2.0

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Пара трюков, благодаря которым жить становится намного проще...

05.05.2017    26359    0    unichkin    3    

Работа с конвертацией данных

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Поскольку к конвертации обращаюсь время от времени и какие-то детали забываются, хочу выделить несколько пунктов, чтобы "было где посмотреть". Статья сделана преимущественно «для себя», так что просьба не судить строго. (Примечание читающим/комментирующим: код в примерах очень сильно сокращен.)

16.03.2017    75511    0    perepetulichka    26    

Online телефонный справочник из 1С: Зарплата и управление персоналом

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    24262    0    ruha    14    

Как настроить правильную техподдержку (helpdesk, service desk на коленке) Промо

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени v8 УУ Бесплатно (free)

Эта статья будет полезна для компаний, которые оказывают техническую поддержку своим пользователям - внешним или внутренним клиентам. В статье я расскажу, как оказываем поддержку мы, как выстроили этот бизнес-процесс, что контролируем и на что обращаем внимание в работе. Вы можете использовать наш опыт при построении собственной системы поддержки или обратиться к нам за помощью за построением такой системы, будем рады помочь. В статье формируется основной набор правил, которые мы сформировали при настройке системы для себя, а так же небольшие примеры того, как мы эти правила применяем.

24.04.2019    14976    0    siddy    0    

Библиотека стандартных подсистем (Механизм БСП)

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

03.03.2017    63690    0    V.Stavinsky    21    

Автоматизированная проверка конфигураций… и пара слов о стандартах разработки

Практика программирования Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Предлагаю познакомиться с инструментом "Автоматизированная проверка конфигураций" и получить практику его применения

18.01.2017    53225    0    Vladimir Litvinenko    23    

Отладка подключаемых обработок

Практика программирования v8 1cv8.cf Бесплатно (free)

На самом деле для этого не нужно ни изменять конфигурацию, ни пользоваться вспомогательной обработкой-отладчиком.. Все просто :)

04.01.2017    55357    0    unichkin    83    

РИБ 200 узлов. Середина пути

Распределенная БД (УРИБ, УРБД) v8 Розница Россия Бесплатно (free)

Между настройкой и поддержкой РИБ на 2 узла и на 10 большой разницы нет, а вот когда число удаленных точек переваливает за сотню, приходится решать уже совсем другие вопросы

25.10.2016    38129    0    comol    215