Тема для тех, кому лень создавать новую тему :)

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

p.s. Просьба задавать вопросы только по программированию. На вопросы по типовым конфигурациям обычно не отвечаю по двум причинам
1. В последнее время редко с ними работаю.
2. Чтобы ответить на вопрос требуется: установить соответствующую базу нужного релиза, смоделировать ситуацию, и только после этого возможно залезть в конфигуратор и разобраться что не так (к сожалению, у меня нет столько времени).

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение admin » 20 ноя 2013, 14:21

Наверное это косяк веб-клиента, а пробовали использовать ОткрытьФорму(ххх)
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11


Re: Тема для тех, кому лень создавать новую тему :)

Сообщение Александр » 14 янв 2014, 12:29

Еще раз здравствуйте, Сергей!
Такой вопрос, необходимо при запуске проверять сколько времени прошло с последней смены пароля пользователей базы 1С.
В конфигурации БП 3.0, в модуле управляемого приложения сделал проверку на необходимость смены пароля. Но не получается проверить , не изменил ли пользователь пароль на такой же.
Хотел сравнивать хеш функции паролей:
ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ПользовательИБ.УникальныйИдентификатор).СохраняемоеЗначениеПароля с хеш функцией до изменения пароля.
Но СохраняемоеЗначениеПароля доступно только для пользователей с административными правами. Включение привилегированного режима не помогает.
Есть ли еще какие варианты решения задачи?

Есть вариант открывать второе COM соединение под пользователем до записи нового пароля, и проверять не подходит ли оно к базе. Но хотелось бы решить более правильно данную задачу.
Спасибо!
Александр
 
Сообщений: 31
Зарегистрирован: 11 май 2012, 15:22

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение admin » 19 янв 2014, 12:08

У меня все работает под ограниченными правами:

Вот пример:

В модуле управляемого приложения:
Процедура ПриНачалеРаботыСистемы()

Если МодульПароли.НеобходимостиСменитьПароль() Тогда

Пока Истина Цикл
Пароль = "";
Если ВвестиСтроку(Пароль,"Введите новый пароль") Тогда
Если МодульПароли.СменитьПароль(Пароль) Тогда
Прервать;
Иначе
Предупреждение("Пароль не изменился");
КонецЕсли;
КонецЕсли;
КонецЦикла;

КонецЕсли;

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

Общий модуль МодульПароли (Привилегированный,Сервер,ВызовСервера):

Функция НеобходимостиСменитьПароль() Экспорт

Возврат Истина;

КонецФункции // ()

Функция СменитьПароль(Пароль) Экспорт

ПользовательИнформационнойБазы = ПользователиИнформационнойБазы.ТекущийПользователь();
ХэшСтарогоПароля = ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля;

НачатьТранзакцию();

ПользовательИнформационнойБазы.Пароль = Пароль;
ПользовательИнформационнойБазы.Записать();

ХешНовогоПароля = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя()).СохраняемоеЗначениеПароля;

Если ХешНовогоПароля = ХэшСтарогоПароля Тогда
ОтменитьТранзакцию();
Возврат Ложь;
Иначе
ЗафиксироватьТранзакцию();
Возврат Истина;
КонецЕсли;

КонецФункции // ()
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение Александр » 28 янв 2014, 15:47

Спасибо, тоже заработало. :)
Пользовался функцией УстановитьПривилегированныйРежим(Истина) в серверном модуле. Не работало.
В отдельном привилегированном модуле работает. :)
Александр
 
Сообщений: 31
Зарегистрирован: 11 май 2012, 15:22

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение Александр » 10 фев 2014, 17:28

У внешней печатной формы для бух 3.0 перед печатью необходимо дать пользователю выбрать счет.
Есть такая возможность?
Модуль печати выполняется на сервере, и поэтому формы открывать нельзя, есть какие нибудь варианты еще?
Цель сделать эту печатную форму внешней не меняю конфигурацию БП 3.0.
Александр
 
Сообщений: 31
Зарегистрирован: 11 май 2012, 15:22

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение admin » 11 фев 2014, 13:10

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

(одна особенность, в составе обработки есть форма проверки для отладки, вторая - это ваша форма, после отладки необходимо заменить основную форму на вашу форму)
Вложения
ПечФормаШаблонБСПОткрытиеФормы.epf
(11.6 KiB) Скачиваний: 1374
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение Разина » 16 авг 2016, 16:58

Здравствуйте, Сергей.

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

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение admin » 17 авг 2016, 11:49

Добрый день, Разина!

У принтера всегда есть поля, примерно 5 мм, и как не настраивай все-равно будет рамка. Я попробовал убрать поля и напечатать из 1с и попробовал из Excel, результат печати одинаковый - рамка 5 мм.
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11

Re: Тема для тех, кому лень создавать новую тему :)

Сообщение Sveta » 21 янв 2017, 23:43

Здравствуйте! Никак не получается у меня найти ошибку. Задача простая, но пока не хватает знаний, где-то вкралась ошибка. При удалении строки в табличной части "Состав" справочника СоставныеЧасти, необходимо удалять значение реквизита "ВСоставе" справочника Номенклатура, который соответствует реквизиту табличного части "СоставнаяЧасть" справочника СоставныеЧасти.
&НаКлиенте
Процедура СоставПередУдалением(Элемент, Отказ)
Строка = Элементы.Состав.ТекущиеДанные;
СтрокаВСоставе = Строка.СоставнаяЧасть;
СоставПередУдалениемНаСервере(СтрокаВСоставе);
КонецПроцедуры

&НаСервере
Процедура СоставПередУдалениемНаСервере(СтрокаВСоставе)
Номенкл = СтрокаВСоставе.ПолучитьОбъект();
Номенкл.ВСоставе = СправочникСсылка.Номенклатура.ПустаяСсылка();
КонецПроцедуры
Sveta
 
Сообщений: 36
Зарегистрирован: 03 май 2012, 16:38

Пред.След.

Вернуться в Вопросы по программированию

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron