Архив метки: 1с

Программная проверка пользователя 1С

Есть тысяча способов ограничить пользователя в 1С. Самый простой, если часть кода самописная, это «жесткая» привязка к конкретным пользователям. Например это можно сделать так:

&НаСервере
Функция ПроверитьПользователя(пользователь)
	рез=ложь;
	если пользователь=ПользователиИнформационнойБазы.ТекущийПользователь().Имя тогда
		рез=Истина;
	конецесли;		
	возврат рез;
конецфункции

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

Ошибка при при публикации 1С на веб сервере

Если серверная ОС 64х битная, а 1С 32х битная, в IIS будет вылезать ошибка

Ошибка HTTP 500.0 — Internal Server Error

Решение: необходимо разрешить IIS запуск 32х битных приложений. Запускаем консоль inetmgr и ставим свойство «Разрешены 32-разрядные приложения» в true:

 

Выбор по умолчанию элемента списка на форме 1С (8.3)

Казалось бы тривиальная задача, при открытии формы чтобы было выбрано какоето значение по умолчанию. Но! с час гугленья дало кучу результатов для платформы 8.2 и ни одного (или плохо искал) для платформы 8.3 на управляемых формах.

Тадам!:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	объект.ШтукНаСтранице=10;
	Элементы.ШаблонЦенника.ВыделенныйТекст="Длинный";
КонецПроцедуры

Загрузка фото в номенклатуру из прайсов формата XML. 1C Розница 2.2

1) Формат Новотех

Файл XML:

<?xml version="1.0" encoding="UTF-8"?>
<data date="2018-09-26T16:10:20" vendor="SONEX">
<catalog>
<items>
<item id="576ee499-29fc-11e5-8885-003048ffdc82">
<name>370231 NT16 271 хром Встраиваемый декоративный поворотный светильник IP20 GX5.3 50W 12V PEONY</name>
<code>0035856</code>
<article>370231</article>
<description/>
<barcode>4690344039710</barcode>
<item_url>http://isonex.ru/info/index.php?ACTION=FILTER&NAME=370231 NT16 271 хром Встраиваемый декоративный поворотный светильник IP20 GX5.3 50W 12V PEONY</item_url>
-<properties>
<property value="0,193" name="Вес"/>
<property value="0,132" name="Вес нетто"/>
<property value="0,0006" name="Объем"/>
<property value="1" name="Количество ламп"/>
<property value="ВЕНГРИЯ" name="Страна"/>
<property value="NOVOTECH" name="Бренд"/>
<property value="Светильник произведен из сплава цинка. Благодаря сравнительно высоким механическим и литейным качествам, изделия, выполненные из сплава цинка, отличаются высокой точностью деталей декора со сложной конфигурацией. Так же он обладает антикоррозийными свойствами. Декоративные украшения сделаны из хрусталя. Огранка хрусталя, подобно огранке драгоценных камней, позволяет в полной мере проявить свойства, обусловленные большим показателем преломления и дисперсией." name="Описание серии для сайта"/>

<property value="http://isonex.ru/upload/iblock/392/39269950101d067033814dd9e8e3a61b.jpeg" name="Фото на сайте"/>
<property value="хром" name="Цвет плафона"/>

Обработка 1С: Читать далее Загрузка фото в номенклатуру из прайсов формата XML. 1C Розница 2.2

1C 8.3 : нельзя изменять поле содержащее объект данных формы

Ошибка возникает при следующем коде:

&НаСервере
Процедура ПробитьЧекНаСервереГрибов(документ)
ОбщийМодульГрибов.ЗаписатьВБазуMySQLДокумент(документ);	
КонецПроцедуры
&НаКлиенте
Процедура ПробитьЧек(Команда)
	ПробитьЧекНаСервереГрибов(Объект);	     	
КонецПроцедуры

Почему?  Дело в том, что в параметре процедуры ПробитьЧекНаСервереГрибов(Объект) мы передаём данные формы с типом ДанныеФормыКоллекция, и потом на сервере пытаемся их изменить.Даже если эти данные мы не меняем внутри процедуры, 1С на всякий случай ругнется.. Чтобы этого избежать, достаточно изменить код так:

&НаКлиенте
Процедура ПробитьЧек(Команда)	        
	ддк=Объект;
	ПробитьЧекНаСервереГрибов(ддк);	     
КонецПроцедуры