Интересные возможности 1С

Публикация № 506000 26.04.16

Разработка - Механизмы платформы 1С

Обработка javascript html-application VBA autorun regedit

Пара примеров использования сторонних языков программирования из 1С, отправка почты на примере mail.ru и загрузка файлов с HTTPS

Рассмотрим ситуацию, в которой у нас есть ПК с установленной операционной системой Windows и установленной 1С 8.3.6. 

Какие нестандартные задачи мы сможем решить с данной связкой?

Из 1С нам доступно всё изобилие программных средств, умеющих работать через COM. При желании можно, например, открыть CD-Rom у пользователя:

ComОбъектWMPlayer = Новый COMОбъект("WMPlayer.OCX.7"); 
Дисководы         = ComОбъектWMPlayer.cdromcollection; 
Дисководы.item(0).eject(); 

Однако бывает, что нам нужно сделать в системе что-то специфичное, а необходимый функционал вы нашли в каком-нибудь vb-скрипте, ниже представлен шаблон, который можно использовать в данной ситуации:

wshShell     = Новый COMОбъект("wScript.shell"); 
ПутьКСкрипту = wshShell.expandEnvironmentStrings("%HOMEDRIVE%")
 + wshShell.expandEnvironmentStrings("%HOMEPATH%") + "\VBSFrom1C.vbs";
СкриптVBS    = Новый ТекстовыйДокумент; 
ТекстСкрипта = "MsgBox " + Символ(34) + "Hello World!" + Символ(34); 
СкриптVBS.ДобавитьСтроку(ТекстСкрипта); 
Попытка 
 СкриптVBS.Записать(ПутьКСкрипту, КодировкаТекста.OEM); 
 ЗапуститьПриложение(ПутьКСкрипту); 
Исключение 
 Сообщить(ОписаниеОшибки());
КонецПопытки; 

Но вдруг запуск скриптов запрещён локальной политикой безопасности? В таком случае нам поможет HTML-приложение, которое по умолчанию имеет доступ к файловой системе, ниже представлен шаблон:

wshShell         = Новый COMОбъект("wScript.shell"); 
ПутьКСкрипту      = wshShell.expandEnvironmentStrings("%HOMEDRIVE%") + wshShell.expandEnvironmentStrings("%HOMEPATH%") + "\JavascriptFrom1C.hta"; 
 
СкриптJavascript = Новый ТекстовыйДокумент; 
Символ34 = Символ(34);
ТекстСкрипта = "<!-- saved from url=(0014)about:internet --><!doctype> 
|<html> 
|<head> 
| <HTA:APPLICATION ID=" + Символ34 + "oHTA" + Символ34 + " 
| APPLICATIONNAME=" + Символ34 + "WMPTour" + Символ34 + " 
| BORDER=" + Символ34 + "thin" + Символ34 + " 
| BORDERSTYLE=" + Символ34 + "normal" + Символ34 + " 
| CAPTION=" + Символ34 + "yes" + Символ34 + " 
| maximizeButton=" + Символ34 + "no" + Символ34 + " 
| minimizeButton=" + Символ34 + "no" + Символ34 + " 
| ICON=" + Символ34 + "img/wmptour.ico" + Символ34 + " 
| SHOWINTASKBAR=" + Символ34 + "no" + Символ34 + " 
| SINGLEINSTANCE=" + Символ34 + "yes" + Символ34 + " 
| SYSMENU=" + Символ34 + "yes" + Символ34 + " 
| VERSION=" + Символ34 + "1.0" + Символ34 + " 
| WINDOWSTATE=" + Символ34 + "normal" + Символ34 + "> 
|</head> 
|<body> 
|<script> 
| alert( 'Hello, World!'); 
|</script> 
|</body> 
|</html> 
|"; 
СкриптJavascript.ДобавитьСтроку(ТекстСкрипта); 
Попытка 
 СкриптJavascript.Записать(ПутьКСкрипту, КодировкаТекста.OEM); 
 ЗапуститьПриложение(ПутьКСкрипту); 
Исключение 
 Сообщить(ОписаниеОшибки()); 
КонецПопытки; 

Иногда нужно отправить письмо из 1С, тут пригодится следующий код (для mail.ru):

     ИнПочта                       = Новый ИнтернетПочта;            
     ИнПрофиль                     = Новый ИнтернетПочтовыйПрофиль;
     ИнПрофиль.ВремяОжидания       = 180; ;            
     ИнПрофиль.АдресСервераSMTP    = "smtp.mail.ru";      
     ИнПрофиль.АдресСервераPOP3    = "pop.mail.ru";
     ИнПрофиль.Пользователь        = "*@mail.ru";      
     ИнПрофиль.ПользовательSMTP    = "*@mail.ru";
     ИнПрофиль.Пароль              = "*****";      
     ИнПрофиль.ПарольSMTP          = "*****";      
     ИнПрофиль.ПортSMTP            = 465;
     ИнПрофиль.ИспользоватьSSLSMTP = Истина;
     ИнПрофиль.ПортPOP3            = 995;
     ИнПрофиль.ИспользоватьSSLPOP3 = Истина;
     ИнПрофиль.АутентификацияSMTP  = СпособSMTPАутентификации.Login;      
     //ИнПрофиль.POP3ПередSMTP     = Истина;            
     Сообщение                     = Новый ИнтернетПочтовоеСообщение; 
           
     Сообщение.Отправитель.Адрес             = "*@mail.ru";
     Сообщение.Отправитель.ОтображаемоеИмя   = "Робот";      
     Сообщение.Тема                          = "Проверка почтового бота";            
     Получатель                              = Сообщение.Получатели.Добавить("*@wateva.ru");
	
	Попытка            
		ИнПочта.Подключиться(ИнПрофиль);      
	Исключение            
		Сообщить("При подключени к серверу произошла ошибка! Проверьте учетные данные профиля почты." + ОписаниеОшибки(), СтатусСообщения.Важное);      
	КонецПопытки;            
	Текст=Сообщение.Тексты.Добавить();      
	//Текст.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;      
	//ТекстПисьма="";      ВложенияПисьма="";      
	//ТекстПисьмаФорматированный.ПолучитьHTML(ТекстПисьма,ВложенияПисьма);      
	//Текст.Текст = ТекстПисьма;            
	Текст.ТипТекста  = ТипТекстаПочтовогоСообщения.ПростойТекст;
	Текст.Текст      = "Привет :)";
	
	Попытка            
		ИнПочта.Послать(Сообщение);            
		ЭтаФорма.Доступность = Ложь;        
		Сообщить("Письмо отправлено!");      
	Исключение            
		Сообщить("При отправке возникли проблемы. Письмо не отправлено. Проверьте правильность заполнения профиля и почты." + ОписаниеОшибки(),СтатусСообщения.Важное)      
	КонецПопытки;
	
	ИнПочта.Отключиться();	

Бывает, что нужен какой-нибудь файлик с какого-нибудь ресурса, который использует https. Для начала проверим, проверяет ли данный адрес сертификаты перед загрузкой (я использую wget, т.к. удобно и стабильно):

wget https://www.*.ru/upload/file.txt --no-check-certificate
 Если всё прошло удачно, делаем то же самое из 1С:
        СерверИсточник = "www.*.ru"; 
	Запрос = Новый HTTPЗапрос("/upload/file.txt");
	// wget https://www.*.ru/upload/file.txt --no-check-certificate       
	Попытка
		НТТР = Новый HTTPСоединение(СерверИсточник,443,,,,, Новый ЗащищенноеСоединениеOpenSSL()); 
		Ответ = НТТР.Получить(Запрос, "C:\file.txt"); 		
		Если НЕ(Ответ.КодСостояния = 200) Тогда
			// Что-то пошло не так.
		КонецЕсли;
	Исключение	
		Ошибка = ОписаниеОшибки();	
	КонецПопытки;

Если нам нужно запустить на клиентской машине какое-нибудь приложение, а клиент привык работать только с 1С, делаем следующее:

//1. Превращаем наш исполняемый файл в строку

ДД       =  Новый ДвоичныеДанные("C:\НашаПрограмма.exe");
Строка64 = Base64Строка(ДД);

//2. И добавляем его реквизитом в обработку 
//   в процедуру "ПриСозданииНаСервере".
    
 Объект.ДвоичныеДанные = Строка64;
ОпятьДвоичныеДанные    =  Base64Значение(Объект.ДвоичныеДанные);
НашаПрограмма          = "C:\НашаПрограмма.exe";    
ОпятьДвоичныеДанные.Записать(НашаПрограмма);    
ЗапуститьПриложение(НашаПрограмма);

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

&НаКлиенте
Процедура ДобавитьПрограммуВАвтозапуск(ПолныйПутьКФайлу = "", ВключитьОтладку = Ложь)
      
 Символ34               = Символ(34);
 ВеткаАвтозапуска       = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
 СтрокаКоманды          = "Reg Add "
                          + Символ34 + ВеткаАвтозапуска + Символ34
                          + " /v " 
                          + Символ34 + "Notepad" + Символ34 
                          + " /t REG_SZ /d " 
                          + Символ34 + ПолныйПутьКФайлу + Символ34 
                          + " /f"
                          + " /reg:64";                                                                      
 ПутьКСкриптуДобавления = "C:\Users\Public\Documents\startNotepad_Autorun.bat";
 ЗаписьТекста           = Новый ЗаписьТекста(ПутьКСкриптуДобавления, КодировкаТекста.OEM);  
 Если ВключитьОтладку Тогда         
   ЗаписьТекста.ЗаписатьСтроку(СтрокаКоманды + Символы.ПС);
   ЗаписьТекста.ЗаписатьСтроку("pause");          
 Иначе         
   ЗаписьТекста.ЗаписатьСтроку(СтрокаКоманды);         
 КонецЕсли;      
 ЗаписьТекста.Закрыть();
 Оповещение = Новый ОписаниеОповещения("IDDQD", ЭтотОбъект);
 НачатьЗапускПриложения(Оповещение,ПутьКСкриптуДобавления);
      
КонецПроцедуры
  
&НаКлиенте
Процедура IDDQD(Первый, Второй)  Экспорт    
КонецПроцедуры

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. TODD22 18 27.04.16 07:49 Сейчас в теме
Зачем каждый раз вызывать функцию Символ(34) ? нельзя её один раз вызвать, получить значение символа, поместить его в переменную ?
2. FilatovRA 167 27.04.16 09:24 Сейчас в теме
(1) TODD22, можно, но это сильно снизит читаемость кода.
3. Perrojka 27.04.16 09:29 Сейчас в теме
(2) Если назвать Символ34 то та же самая читаемость.

А вообще слишком громкий заголовок. Это скорее
Пара примеров использования сторонних языков программирования из 1С
torbeev; sasha777666; madonov; veretennikoff; ZOMI; Solovyeff; AlexGroovy; lamelioss; Yashazz; fuxic; ixijixi; philya; alest; +13 Ответить
5. FilatovRA 167 27.04.16 10:01 Сейчас в теме
(3) Perrojka, (4) TODD22 Про вызов не подумал
6. TODD22 18 27.04.16 10:08 Сейчас в теме
(5)
Про вызов не подумал

А вообще в рекомендациях по разработке на ИТС написано что вместо функции Символ(10) нужно использовать Символ.ПС. то есть не вызывать функцию если есть в системном наборе значений. Но в наборе символом немого. Видимо рекомендация всё по той же самой причине... что бы не вызывать системную функцию.
4. TODD22 18 27.04.16 09:32 Сейчас в теме
(2)
можно, но это сильно снизит читаемость кода.

Действительно... Лучше вызывать системную функцию +100500 раз... И замедлить работу системы.
fzt; ixijixi; +2 Ответить
7. unichkin 1534 27.04.16 12:23 Сейчас в теме
За выполнение java-скрипт через html плюс, еще одна зарубка на приклад...
8. kraynev-navi 625 27.04.16 14:00 Сейчас в теме
Дисководы.item(0).eject();


уже за это плюс! ))))
Rain88; madonov; DrAku1a; +3 Ответить
27. madonov 165 21.09.16 02:26 Сейчас в теме
(8) kraynev-navi, жаль, что 1ое апреля в 2017-ом выпадает на субботу.
А то бы утро у пользователей началось с войны с дисководами =)).
9. necropunk 9 28.04.16 11:26 Сейчас в теме
Однако нередко бывает, что запуск скриптов запрещён локальной политикой безопасности, в таком случае нам поможет HTML-приложение, которое по умолчанию имеет доступ к файловой системе

Плохому вы людей учите :) Но плюс, конечно, хорошо бы всем уметь с легкостью пользоваться сторонними фишками из 1С а не писать велосипедов...
10. v3rter 28.04.16 11:32 Сейчас в теме
(9) necropunk, Админам тоже полезно знать, на что способен продвинутый пользователь из внешне кажущейся безопасной 1С :)
В прошлом веке утверждали, что в произвольной скриптовой/языковой среде достаточно доступа к файловой системе для написания "червей", а возможности модификации кода из кода - вирусов.

Я имею в виду, админ 1С должен с осторожностью давать право на запуск внешних обработок и закрывать доступ в конфигуратор.
Потому что возможность запуска произвольного кода в среде 1С делает из нее вектор таргетированных атак.
11. necropunk 9 28.04.16 11:59 Сейчас в теме
(10) v3rter, да понятное дело. Бывают и веб-сервисы, позволяющие выполнять произвольный запрос и передавать компоновку. Я так, шучу, скорее, там смайлик же стоит.
12. v3rter 28.04.16 12:18 Сейчас в теме
Как только 1С начнут массово использовать как инструмент доставки троянов, шифраторов и прочего пэйлоада, в платформе появятся инструменты безопасности и подписи обработок, аналогичные, например, Microsoft Office, и начнется регулярный выпуск хотфиксов. Считайте это футуристическим прогнозом :)
22. LexSeIch 209 23.06.16 11:41 Сейчас в теме
(12) v3rter,
К сожалению, уже используют: "Доктор Веб" сообщает о первом троянце для 1С, запускающем шифровальщика-вымогателя (22 июня 2016 года) ... источник
24. FilatovRA 167 24.06.16 14:06 Сейчас в теме
(22) LexSeIch, вполне ожидаемо, и вектор выбран идеально.
13. пользователь 28.04.16 13:42
Сообщение было скрыто модератором.
...
14. premierex 203 29.04.16 12:24 Сейчас в теме
(0) Рассмотрим ситуацию, в которой у нас есть ПК с установленной операционной системой Windows и установленной 1С 8.3.6. .
А если рассмотреть ситуацию с установленной 1С 8.2 к примеру? Почту как отправлять будем? Практически все почтовые сервера перешли на SSL (TSL) шифрование, которое не работает на платформе 8.2? Неплохо было бы и этот вопрос осветить.
15. v3rter 29.04.16 12:41 Сейчас в теме
16. premierex 203 29.04.16 12:55 Сейчас в теме
(15) v3rter, или, например, использовать объект "CDO.Message", что к теме публикации, как мне кажется, ближе.
17. FilatovRA 167 13.05.16 10:22 Сейчас в теме
(16) premier, как отправлять через CDO уже неплохо описано
18. v3rter 13.05.16 12:22 Сейчас в теме
Не знал про CDO, но сходу нашел про него http://infostart.ru/public/16585/
19. CheBurator 3114 14.05.16 00:15 Сейчас в теме
моя отправлялка по CDO с кучей разных полезных обвесок http://infostart.ru/public/14131/ - наверное больше чем с 2500 адресов отправляет в разных компаниях (с каждой бы рублей по 300...) - а я написал взяв за основу пример от avb (еще более ранний)
20. Yashazz 4506 20.06.16 11:40 Сейчас в теме
Забавно видеть очередную перелицовку давно известных книг под видом самостоятельной публикации, забавно... То же "Системное программирование 1С" А.Михайлова - сколько его, родимое, копипастили без указания первоисточника...
23. FilatovRA 167 24.06.16 14:02 Сейчас в теме
(20) Yashazz, при написании данной статьи не копировалось ни одной книги, о какой вы говорить?
21. EvgeniusRusius 20.06.16 14:54 Сейчас в теме
В пример автора:
ПутьКСкрипту = wshShell.expandEnvironmentStrings("%HOMEPATH%") + "\VBSFrom1C.vbs";


оказалось нужно внести правку:
ПутьКСкрипту = "C:\" + wshShell.expandEnvironmentStrings("%HOMEPATH%") + "\VBSFrom1C.vbs";

в случае если уверен что папка в переменной %HOMEPATH% находится на диске "C"
26. FilatovRA 167 20.09.16 22:01 Сейчас в теме
(21) Ganjubas, большое спасибо, не заметил, можно вот так:
    ПутьКСкрипту      = wshShell.expandEnvironmentStrings("%HOMEDRIVE%") + wshShell.expandEnvironmentStrings("%HOMEPATH%") + "\JavascriptFrom1C.hta"; 
25. v3rter 24.06.16 16:48 Сейчас в теме
Кстати, год назад было для 7.7 http://www.klerk.ru/soft/news/25630/
Появился вирус для 1С
16.06.05 18:48
Просмотров: 1464
Лаборатория Касперского сообщает о регистрации первой вредоносной программы, поражающей систему 1С:Предприятие.

Вирус, получивший название Virus.1C.Tanga.a, был создан в исследовательских целях. Создатель программы сам направил ее экспертам Лаборатории Касперского для изучения. Автор Tanga минимизировал время анализа кода и ущерб от его возможного распространения — лишил вирус каких-либо деструктивных функций и снабдил развернутым описанием на русском языке.

Для своего распространения Tanga использует язык модулей «1С». Он позволяет вирусу обращаться к другим дисковым файлам, включая и файлы-отчеты, подобные зараженным, и таким образом размножаться. Данный вредоносный код является первой полноценной программой-инфектором, созданной для платформы «1С:Предприятие7.7» и записывающей свой код в служебные файлы системы формата .ERT.
Оставьте свое сообщение

См. также

Снова об использовании ТекущаяДата() на клиенте и на сервере и о работе в разных часовых поясах

БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Можно ли применять ТекущаяДата() вопреки требованиям стандартов 1С? Безопасно ли использование функции ОбщегоНазначенияКлиент.ДатаСеанса() из БСП? Как правильно поступать при работе пользователей в разных часовых поясах?

24.04.2023    3978    Alxby    26    

40

Самодельный обработчик ПослеЗаписи объекта

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Иногда при записи объекта хочется обработчик ПослеЗаписи, который бы выполнялся всегда после успешного завершения транзакции записи объекта. Статья описывает способ реализации такого обработчика.

03.04.2023    2795    tormozit    63    

39

Расширение глобального поиска 1С, или Глобальный поиск "на максималках"

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

27.03.2023    4164    SeiOkami    9    

121

Postgres как предчувствие. Вычисляем процент импортозамещения в режиме Highload от 1С

HighLoad оптимизация Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

1С работает с СУБД Postgres более 10 лет, а сейчас это единственный легальный вариант для инсталляций в России. Много ли мы потеряем в производительности по сравнению с MS SQL? Выдержит ли Postgres 15.2 жесткий Highload со стороны 1С? Цель этой статьи - ответить на данные вопросы, с цифрами, которые можно использовать при расчете архитектуры.

23.03.2023    1625    1CUnlimited    9    

28

Версионирование объектов VS История данных

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Давайте разберемся в механизме «История данных» и поэкспериментируем для наглядности. Сравним «Версионирование объектов» и «Историю данных».

06.03.2023    5774    dsdred    37    

123

Оператор GOTO в 1С - табу или волшебная палочка?

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В ежедневной практике программирования на платформе 1С оператор Goto (Перейти) практически не встречается. Не удивительно, что половина специалистов даже не подозревает о существовании данного оператора. Ну, а знающим он внушает ужас, и его стараются избегать. Так что же это за редкий оператор, и для чего он нужен?

19.02.2023    5667    Dementor    72    

43

Идентификатор объекта в запросе. Вы этого хотели?

Запросы Механизмы платформы 1С Платформа 1С v8.3 Запросы Бесплатно (free)

В платформе 8.3.22 появилась возможность получать идентификатор в запросе. Лично я ждал этого давно, но по итогу ждал большего. Что не так?

12.01.2023    12745    dsdred    15    

68

Маленькие хитрости большой платформы (часть 1)

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

29.12.2022    4210    zeltyr    25    

41

Практическая шпаргалка по новым возможностям языка запросов 1С

Механизмы платформы 1С Запросы Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

В предлагаемой статье решил привести примеры применения новых возможностей языка запросов 1С, начиная с версии платформы 8.3.20.

21.11.2022    16271    quazare    34    

113

Создаем периодические реквизиты или привет из 1С 7.7

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Конечно же, платформа 1С:Предприятие 8 не поддерживает периодические реквизиты, в статье описано использование типовой методики периодических сведений в коробочных решениях от 1С.

26.10.2022    1297    morin    4    

26

Асинхронное нечто, или так, как раньше!

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Все же знают, что раньше было лучше! Возврат к истокам и погружение в детали...

23.10.2022    4757    starik-2005    38    

40

О цикле обратном замолвите слово...

Механизмы платформы 1С Языки и среды Платформа 1С v8.3 Платформа 1C v8.2 Бесплатно (free)

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

08.09.2022    6414    DrAku1a    69    

31

1С и Unicode

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Разбираемся, как 1С работает с текстом и отдельными символами в контексте Unicode.

05.09.2022    4687    Irwin    30    

80

Шпаргалка по функциям АСИНХ

Механизмы платформы 1С Платформа 1С v8.3 Россия Бесплатно (free)

При знакомстве с новой механикой работы с асинхронностью (обещание, ждать и асинх) делал пометки, которыми и хочу поделиться. Ничего сверхъестественного в них нет, просто небольшие примеры и некоторые всплывшие нюансы использования.

29.07.2022    16943    zeltyr    17    

146

Экспертный кейс. История расследования одного небыстрого закрытия месяца в 1C:ERP. Пример неочевидных путей расследования в виде детективной истории

HighLoad оптимизация Механизмы платформы 1С Запросы Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

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

11.07.2022    5732    it-expertise    27    

57

Состав индексов с дополнительным упорядочиванием на уровне СУБД (MS SQL) при индексации реквизитов

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

15.06.2022    3058    sinichenko_alex    9    

34

Динамическое обновление - это зло?

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Копнем глубже в тему "Что же такое динамическое обновление" и почему оно может привести к проблемам. И может ли?

09.05.2022    18180    Infostart    79    

228

Об одной неочевидной проблеме перехода на версию платформы 8.3.20

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

При переходе на платформу 8.3.20 мы столкнулись с ошибкой "Повторяющийся псевдоним "Ссылка" Ссылка AS Ссылка,Presentation AS Presentation,Ссылка AS Ссылка" в ряде типовых конфигураций. Причём, эта проблема оказались неизвестна ни Яндексу, ни Гуглу. Путём мучительных экспериментов нам удалось найти решение. Пока я ещё не уверен, действительно это решение или обходной костыль, а настоящая проблема -- в чём-то другом, но это решение работает в ситуации, когда всё сломалось, а проблему надо решать срочно. Предположительная причина: платформа 8.3.20 более строго относится к типизации данных в запросах, чем предыдущие версии, вываливая в случае несоблюдения новшеств малопонятные ошибки.

08.04.2022    6860    Kernelbug    26    

34

Отборы динамического списка

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

28.03.2022    28683    Gladkov_Anton    7    

72

Фишки платформы 1С 8.3 для начинающего разработчика

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

11.03.2022    11163    Dimbayyyy    98    

61

Экспертный кейс. Расследование деградации производительности системы. Проведение документа “Поступление товаров и услуг” (1С:ERP 2)

Механизмы платформы 1С Запросы HighLoad оптимизация Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

В ходе проведения нагрузочного тестирования одним из наших клиентов была выявлена сильная деградация производительности системы в целом и, в частности, выполнения ключевой операции “Проведение документа поступление товаров и услуг” в течение выполнения теста. Согласно данным подсистемы БСП “Оценка производительности”, время выполнения ключевой операции “Проведение документа поступление товаров и услуг” возрастало в процессе тестирования с 15-20 секунд в начале тестирования до 150-200 секунд в его финале.

02.03.2022    4283    it-expertise    50    

31

Модульная архитектура или пара слов о расширениях. Часть I (мысли, рассуждения)

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Статья-размышление о том, какое может быть применение технологии расширений 1С и зачем нам, разработчикам/программистам на 1С, знать общепринятые паттерны проектирования приложений. Итак, а что если я вам скажу, что технология расширений 1С - это одно из прекрасных новшеств компании 1С? Пусть эта статья будет хвалебной одой расширениям 1С.

14.02.2022    6846    amon_ra    67    

25

Синхронный и асинхронный вызов в новых версиях платформы

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Начиная с платформы 8.3.18.1128 переработана технология работы с асинхронными вызовами. В данной статье хочу описать новые асинхронные вызовы и сравнить их с предыдущими на примере функции - Вопрос на клиенте.

31.01.2022    7064    Shining_ninja    17    

36

Несколько простых приемов для удобной работы в конфигураторе

Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С - в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.

12.11.2021    13498    acces969    95    

142

Как спроектировать структуру регистра сведений

Механизмы платформы 1С Платформа 1С v8.3 Запросы Бесплатно (free)

«Что может быть проще?» — это первое, что приходит в голову. Но что, если это не так? В этой статье мы попробуем затронуть некоторые вопросы, которые могут возникнуть при проектировании больших регистров.

08.11.2021    9158    Neti    60    

108

О вложенных попытках, исключениях и о представлении ошибок

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье, на небольшом примере, мне бы хотелось показать, как себя ведут вложенные "Попытка-Исключение". А также о том, чем отличаются методы ОписаниеОшибки() и ИнформацияОбОшибке().

07.11.2021    14009    Nicholas    22    

47

Обработчик ожидания. Нюансы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

ПодключитьОбработчикОжидания: некоторые подробности и особенности работы

24.08.2021    27024    Yashazz    26    

65

Прогресс-бар в поле динамического списка

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Изображаем прогресс-бары в колонке динамического списка

23.08.2021    4690    Yashazz    13    

39

ПриПолученииДанныхНаСервере + Контекст формы. Лайфхак

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Передать свои произвольные данные в событие, которое "без контекста"? Легко!

13.08.2021    7655    Yashazz    16    

44

Новичок новичку: как добавить программно кнопку на форму путем расширения

Механизмы платформы 1С Платформа 1С v8.3 Россия Бесплатно (free)

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

13.05.2021    44529    user1312100    29    

73

Программное создание расширения

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Создание нового расширения "на лету", только штатными средствами 1С.

06.04.2021    7372    Yashazz    16    

77

Советы из Желтой тетради 📒 #1

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

15.03.2021    6572    builin    120    

53

Расширенный автоподбор при вводе по строке в поле ввода в управляемых формах

Механизмы платформы 1С Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Началось все с того, что штатный автоподбор при вводе по строке в поле ввода для некоторых больших справочников устраивать перестал. Вообще, для способа поиска строки "Любая часть" он работает на первый взгляд очень хорошо: работает как полнотекстовый (т.е. по нескольким словам) даже без активации полнотекстового поиска, красиво подсвечивает слова поиска в результатах. Казалось бы, все отлично. Но есть неприятное ограничение - всего лишь 10 значений в результирующем списке (у вас может быть несколько больше, так как платформа неявно добавляет результаты поиска по истории ввода). Для небольших справочников или справочников с разнородным ассортиментом все хорошо. Но не в моей ситуации. А простых путей увеличить количество выдаваемых строк на момент написания статьи мне обнаружить не удалось. Пришлось полностью переопределять автоподбор. Ниже речь пойдет именно об этом. И, к слову, в типовых конфигурациях для некоторых справочников используются похожие приемы для увеличения количества строк результата автоподбора.

21.01.2021    11269    herfis    9    

52

О формах 1С замолвите слово... Необычное использование знакомого всем объекта

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

13.01.2021    10835    CyberCerber    46    

101

Наследование свойств элементов, или Как пользователь может сломать вашу форму

Механизмы платформы 1С Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Бесплатно (free)

В 1С можно установить свойства ТолькоПросмотр, Доступность и Видимость не только на элементы формы, но и на группы элементов. Но стоит ли так делать? Оказывается, пользователь может обойти запреты, которые установлены на папку. Об этом подробнее в видео.

12.01.2021    6800    SeiOkami    27    

112

Ускоряем медленный/долгий и тормозной стандартный поиск по динамическому списку, настраиваем его под себя

Механизмы платформы 1С Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Пользователи привыкли искать на форме списка, но, вбивая в поиск некорректные данные, могут завесить всю систему, а если еще искать нужно по НЕ полям списка, то решение только в своём поиске - все это решим в публикации с открытым кодом.

14.12.2020    41304    SizovE    2    

40

Передача параметров по значению в языке 1С

Механизмы платформы 1С Платформа 1С v8.3 ИТ-компания Бесплатно (free)

Все мы знаем, что в 1С можно написать такое: Процедура ОбработатьОбъект(Знач Объект) КонецПроцедуры Т.е. тем самым мы передаем в процедуру параметр по значению Далее в статье будут рассмотрены некоторые особенности передачи по значению объектов НЕпримитивных типов.

26.11.2020    6585    direktorSan    9    

29