kwinto pan

102
Рейтинг

pankwinto



  •   Регистрация: 24.03.2010 (14 лет назад)

  •   Был(а) на сайте: 26.04.2024

Подписчики 2

Группы

Профессиональный разработчик

Партнер IS-WP

Рейтинг 102

Быстрый доступ к авторам документов в 1С8, или кто сказал МЯУ

Инструменты и обработки Системный администратор Платформа 1С v8.3 1С:Бухгалтерия 2.0 Россия Абонемент ($m) Конфигурация (md, cf) Журнал регистрации

Простейшая универсальная реализация ответа на вопрос - кто создал/изменил/провел/распровел документ в базе 1С8 БП, УПП

1 стартмани

16.03.2012    13128    86    pankwinto    20       

30

Комментарии

Зарплата"Не удалось расшифровать файл" при загрузке из ФСС в больничном листе#8 29.01.19 11:24
Переустановить сертификат с _привязкой_ к закрытому ключу.
ПубликацииИнструкция по настройке загрузки из ФСС электронных листков нетрудоспособности ЭЛН в документ 1С Начисление по больничному листу#88 17.12.18 11:19
(86)

Проблема решилась переустановкой сертификатов с привязкой к закрытому ключу.
ПубликацииИнструкция по настройке загрузки из ФСС электронных листков нетрудоспособности ЭЛН в документ 1С Начисление по больничному листу#86 14.12.18 12:19
Добрый день,

В тонком клиенте при загрузке в ЗУП 3.1 ЭЛН из ФСС получаю сообщение "Не удалось расшифровать файл".

В журнале регистрации вижу ошибку: "Ошибка при вызове "РасшифрованныйФайл" менеджера криптографии.
по причине:
Ошибка вызова метода внешней компоненты
по причине:
Не удается найти сертификат и закрытый ключ для расшифровки."


Все сертификаты прописаны, действительны, работоспособны (данные из личного кабинета ФСС и АРМ ФСС читаются),
Крипто про 4, гост 2001.


Никто не сталкивался?
HighLoadУдаление ссылок из базы 1С8 "Бухгалтерия" по одной и более организациям#0 09.09.13 20:34
Удаление ссылок из базы 1С8 "Бухгалтерия" по одной и более организациям
ЗарплатаКак получить количество часов по графику#4 23.05.13 12:03
(2) PoZiTiFFF,

Например так:

Код

Перем СоответствиеГрафикНорма;
СоответствиеГрафикНорма = Новый Соответствие;

// Функция возвращает норму времени в часах на указанный день по указанному сотруднику
Функция ПолучитьНормуВремениПоДню(Сотрудник, Период, НомерДня)
   Попытка
      ПериодРегистрации = Период;
      ГрафикСотрудника = СоответствиеСотрудникГрафик.Получить(Сотрудник);
      Если ГрафикСотрудника = Неопределено Тогда
         // Графика по этому сотруднику еще нет, нужно получить
         Запрос = Новый Запрос;
         Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
         Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
         Запрос.УстановитьПараметр("ПериодРегистрации", ПериодРегистрации);
         
         ТекстЗапроса = "ВЫБРАТЬ
         |   ДатаТабеля
         |   
         |ПОМЕСТИТЬ ВТДатыТабеля 
         |   ИЗ (
         |   ВЫБРАТЬ
         |   ДАТАВРЕМЯ(" + Формат(Год(ПериодРегистрации), "ЧГ=4") + ", " + Месяц(ПериодРегистрации) + " , 1) КАК ДатаТабеля
         |   ";           
         Для ИндексДня = 2 По День(КонецМесяца(ПериодРегистрации)) Цикл
            ТекстЗапроса = ТекстЗапроса + 
            "ОБЪЕДИНИТЬ ВСЕ
            |ВЫБРАТЬ
            |  ДАТАВРЕМЯ(" + Формат(Год(ПериодРегистрации), "ЧГ=4")+ ", " + Месяц(ПериодРегистрации) + " ," + ИндексДня + ")
            |   ";
         КонецЦикла;
         ТекстЗапроса = ТекстЗапроса + ") КАК ДатыТабеля";
         
         Запрос.Текст = ТекстЗапроса;
         Запрос.Выполнить();
         
         Запрос.Текст = "ВЫБРАТЬ
         |   РаботникиОрганизаций.Период,
         |   РаботникиОрганизаций.Сотрудник,
         |   РаботникиОрганизаций.ГрафикРаботы
         |ПОМЕСТИТЬ ВТРаботникиОрганизаций
         |ИЗ
         |   РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
         |ГДЕ   РаботникиОрганизаций.Сотрудник = &Сотрудник
         |   И РаботникиОрганизаций.Период > &ПериодРегистрации
         |   И РаботникиОрганизаций.Период <= КонецПериода(&ПериодРегистрации, МЕСЯЦ)
         |   И РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
         |
         |ОБЪЕДИНИТЬ ВСЕ
         |
         |ВЫБРАТЬ
         |   РаботникиОрганизацийСрезПоследних.Период,
         |   РаботникиОрганизацийСрезПоследних.Сотрудник,
         |   РаботникиОрганизацийСрезПоследних.ГрафикРаботы
         |ИЗ
         |   РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ПериодРегистрации, Сотрудник = &Сотрудник) КАК РаботникиОрганизацийСрезПоследних
         |ГДЕ
         |   РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)";
         Запрос.Выполнить();
         
         Запрос.Текст = "ВЫБРАТЬ
         |   ДатыИзмененияГрафика.ДатаТабеля,
         |   ДатыИзмененияГрафика.Сотрудник,
         |   ДатыИзмененияГрафика.Период,
         |   РаботникиОрганизаций.ГрафикРаботы
         |ПОМЕСТИТЬ ВТДатыСотрудникГрафик
         |ИЗ
         |   (ВЫБРАТЬ
         |      ВТДатыТабеля.ДатаТабеля КАК ДатаТабеля,
         |      ВТРаботникиОрганизаций.Сотрудник КАК Сотрудник,
         |      МАКСИМУМ(ВТРаботникиОрганизаций.Период) КАК Период
         |   ИЗ
         |      ВТДатыТабеля КАК ВТДатыТабеля
         |         ЛЕВОЕ СОЕДИНЕНИЕ ВТРаботникиОрганизаций КАК ВТРаботникиОрганизаций
         |         ПО (ВТРаботникиОрганизаций.Период <= ВТДатыТабеля.ДатаТабеля)
         |   
         |   СГРУППИРОВАТЬ ПО
         |      ВТДатыТабеля.ДатаТабеля,
         |      ВТРаботникиОрганизаций.Сотрудник) КАК ДатыИзмененияГрафика
         |      ЛЕВОЕ СОЕДИНЕНИЕ ВТРаботникиОрганизаций КАК РаботникиОрганизаций
         |      ПО (РаботникиОрганизаций.Период = ДатыИзмененияГрафика.Период)
         |         И (РаботникиОрганизаций.Сотрудник = ДатыИзмененияГрафика.Сотрудник)";
         Запрос.Выполнить();
         
         Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ 
         |   ГрафикиРаботы.ГрафикРаботы,
         |   ГрафикиРаботы.Дата,
         |   ГрафикиРаботы.ОсновноеЗначение
         |ПОМЕСТИТЬ ВТГрафикиРаботы
         |ИЗ
         |   ВТРаботникиОрганизаций КАК РаботникиОрганизаций
         |ЛЕВОЕ СОЕДИНЕНИЕ
         |   РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботы
         |ПО
         |   (ГрафикиРаботы.ГрафикРаботы = РаботникиОрганизаций.ГрафикРаботы
         |   ИЛИ ГрафикиРаботы.ГрафикРаботы = РаботникиОрганизаций.Сотрудник)
         |   И ГрафикиРаботы.Месяц = &ПериодРегистрации
         |   И ГрафикиРаботы.План
         |   И ГрафикиРаботы.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)";
         Запрос.Выполнить();
         
         Запрос.Текст = "ВЫБРАТЬ 
         |   ЕСТЬNULL(ИндивидуальныйГрафик.ГрафикРаботы, ОбщийГрафик.ГрафикРаботы) КАК ГрафикРаботы,
         |   ДЕНЬ(ДатыТабеля.ДатаТабеля) КАК НомерДня,
         |   ЕСТЬNULL(ИндивидуальныйГрафик.ОсновноеЗначение, ОбщийГрафик.ОсновноеЗначение) КАК НормаЧасов
         |   
         |ИЗ 
         |   ВТДатыСотрудникГрафик КАК ДатыТабеля
         | 
         | ЛЕВОЕ СОЕДИНЕНИЕ
         |   РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ИндивидуальныйГрафик
         |ПО
         |   ИндивидуальныйГрафик.ГрафикРаботы = ДатыТабеля.Сотрудник
         |   И ИндивидуальныйГрафик.Дата = ДатыТабеля.ДатаТабеля
         |   И ИндивидуальныйГрафик.Месяц = &ПериодРегистрации
         |   И ИндивидуальныйГрафик.ВидУчетаВремени = Значение(Перечисление.ВидыУчетаВремени.ПоЧасам)
         |   И ИндивидуальныйГрафик.План
         |   
         |ЛЕВОЕ СОЕДИНЕНИЕ
         |   РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ОбщийГрафик
         |ПО 
         |   ОбщийГрафик.ГрафикРаботы = ДатыТабеля.ГрафикРаботы
         |   И ОбщийГрафик.Дата = ДатыТабеля.ДатаТабеля
         |   И ОбщийГрафик.Месяц = &ПериодРегистрации
         |   И ОбщийГрафик.ВидУчетаВремени = Значение(Перечисление.ВидыУчетаВремени.ПоЧасам)
         |   И ОбщийГрафик.План
         |   УПОРЯДОЧИТЬ ПО ГрафикРаботы, НомерДня, НормаЧасов";
         РезультатЗапроса = Запрос.Выполнить();
         
         МассивНормыДней = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("НормаЧасов");
         Выборка = РезультатЗапроса.Выбрать();
         Выборка.Следующий();
         ГрафикРаботы = Выборка.ГрафикРаботы;
         
         СоответствиеСотрудникГрафик.Вставить(Сотрудник, ГрафикРаботы);
         СоответствиеГрафикНорма.Вставить(ГрафикРаботы, МассивНормыДней);
         
         Возврат МассивНормыДней[НомерДня-1];
      Иначе
         МассивДней = СоответствиеГрафикНорма.Получить(ГрафикСотрудника);
         Возврат МассивДней[НомерДня-1];
      КонецЕсли;
   Исключение
      //номер дня неверный, (29,31...)
      Возврат 0;
   КонецПопытки;
   
   Возврат 0;
КонецФункции // ПолучитьНормуВремениПоДню()

AdminБыстрый доступ к авторам документов в 1С8, или кто сказал МЯУ#11 23.03.12 15:06
Все верно. Все минусы подмечены верно. Плюсы описаны выше.
Идея и реализация крайне просты. Моему клиенту истории в один шаг было вполне достаточно.
Тапками не кидайте.
AdminБыстрый доступ к авторам документов в 1С8, или кто сказал МЯУ#8 23.03.12 11:43
Скорость, ребята, скорость получения информации...
Заюзал отчет по журналу регистарции, указанный i132.
Пока пишу это сообщение, все еще нет ответа от него, кто же потрогал документ?
AdminБыстрый доступ к авторам документов в 1С8, или кто сказал МЯУ#6 23.03.12 9:42
Использование отчета в УПП не устраивает :
- требует включенного версионирования объектов
- не удобен в работе. Пока выберешь нужный документ, у ГБ уходит порядка минуты.
AdminБыстрый доступ к авторам документов в 1С8, или кто сказал МЯУ#3 21.03.12 16:46
(2) Alex Star,
Согласен, истории по большому счету нет. Моему клиенту достаточно.
А даже если история есть, пользователь зачастую идет в отказ.
Дескать, "я ничего не менял/просто нажал ОК". Тут уже поможет только версионирование.
Но вся соль в простоте и невмешательстве в конфигурацию.
AdminБыстрый доступ к авторам документов в 1С8, или кто сказал МЯУ#0 19.03.12 3:12
Простейшая универсальная реализация ответа на вопрос - кто создал/изменил/провел/распровел документ в базе 1С8 БП, УПП