Архив рубрики: 1C

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

1С: «Ограничение прав доступа» при удаление объекта справочника

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

После того как дал права на этот регистр, всё заработало…

1C Розница: Поле объекта не обнаружено (SKU)

После обновления до 2.2.11.16, стала выводится данная ошибка при печати ценников.

Решение: надо включить галочку «Обмен с офлайн оборудованием» в разделе «Администрирование» — «Подключаемое оборудование» 

1С: файл не обнаружен AppAutoCheckMode

Ну собственно эта ошибка стала выводиться при запуске приложения «с ярлычка» пользователя, где прописан пусть для жесткого выбора базы данных, после последнего обновления.

Было:

"C:\Program Files (x86)\1cv8\common\1cestart.exe" /Slocalhost\roznica /ENTERPRISE

Стало:

"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /Slocalhost\roznica

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

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

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

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

Количество дней от первого поступления товара. 1С Розница 2.2

Например можно так:

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