Федоров Алексей

10
Рейтинг

limonas
Алексей Федоров



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

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

Друзья
  • Yuri Bannikov
  • Дмитрий Малышев
Подписчики 6

Рейтинг 10

1С:ДиректБанк (загрузка выписок СБЕРБАНК), ошибка работы с Интернет: Удаленный узел не прошел проверку

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 Россия Абонемент ($m) Архив с данными Обмен с интернет-банком

Ошибка появилась при попытке получения банковских выписок СБЕРБАНКА через сервис 1С:ДиректБанк в конфигурации "Управление нашей фирмой, редакция 1.6 (1.6.27.190)", версия компоненты VPNKeyTLS 1.3.0.3 (актуальная), хотя какая конфигурация - роли не играет.

1 стартмани

24.11.2022    7137    9    limonas    9       

6

Решение проблемы с оборудованием "Штрих-М:Весы с печатью этикеток" в конфигурации Розница, редакция 2.2 (2.2.12.30)

Инструменты и обработки Программист Платформа 1С v8.3 1С:Розница 2 Windows Абонемент ($m) Приложение (exe) Весы

В новой конфигурации Розница, редакция 2.2 (2.2.12.30), перестали совсем работать драйверы весов "Штрих-М:Весы с печатью этикеток", которые до этого использовали, убирая галочку в справочнике "Драйверы оборудования" "снят с поддержки". После долгого поиска решения на просторах интернета, сам пришел к простому и рабочему решению проблемы.

1 стартмани

27.06.2019    39782    39    limonas    19       

4

Комментарии

ОбменВыгрузка Счета-фактуры, Акта сверки в СБИС в формате xml для 1С 7.7: Бухгалтерский учет, редакция 4.5#0 20.12.23 10:58
Выгрузка Счета-фактуры, Акта сверки в СБИС в виде файла XML в формате "СчФктр" версии 5.01 и "АктСвер" версии 3.01. Реализованы в виде внешней печатной формы и внешнего отчета.
DevВылетает 1С 7.7. при загрузке.#56 06.10.23 10:06
Была похожая проблема: вылетала 1С без объяснения причины сразу после появления основного окна. Удалось в отладчике увидеть, что вылетала при попытке открытия формы с дополнительной информацией (ОткрытьФорму("Обработка.ИППДополнительнаяИнформация", СписокПараметров)) в процедуре ПриНачалеРаботыСистемы(). Закомментировал и все стало запускаться хорошо.
Обмен1С:ДиректБанк (загрузка выписок СБЕРБАНК), ошибка работы с Интернет: Удаленный узел не прошел проверку#0 24.11.22 11:40
Ошибка появилась при попытке получения банковских выписок СБЕРБАНКА через сервис 1С:ДиректБанк в конфигурации "Управление нашей фирмой, редакция 1.6 (1.6.27.190)", версия компоненты VPNKeyTLS 1.3.0.3 (актуальная), хотя какая конфигурация - роли не играет.
DevПрисоединение файлов в расширении.#21 03.09.21 3:36
(20) Как водится у БСП, создал еще справочник для присоединенных файлов и указал только его: "СправочникСсылка.СертификатыНоменклатурыПрисоединенныеФайлы".
DevПрисоединение файлов в расширении.#19 31.08.21 13:19
(15)
Цитата
ЗаписатьФайлВИнформационнуюБазу
Спасибо, за наводку, все думал, как обойти ограничение платформы с типами и использовать типовые возможности по максимуму. Добавил копированием регистр "ДвоичныеДанныеФайловДоп" в расширение, и, еще, по строчке дописки сделал в процедурах (в расширении конечно) общего модуля "РаботаСФайлами", чтобы только мое дополнение использовало новый регистр:
ДанныеФайла, ДвоичныеДанныеФайла и ХранилищеФайлаИзИнформационнойБазы.
Применительно к моему новому справочнику "СертификатыНоменклатуры", код в УНФ такой:
Код
Функция РасшСерт_ДанныеФайла(Знач ПрисоединенныйФайл, Знач ДополнительныеПараметры, Знач УдалитьПолучатьСсылкуНаДвоичныеДанные, Знач УдалитьДляРедактирования)
   
   Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
      
      ДляРедактирования = ?(ДополнительныеПараметры.Свойство("ДляРедактирования"), ДополнительныеПараметры.ДляРедактирования, Ложь);
      ИдентификаторФормы = ?(ДополнительныеПараметры.Свойство("ИдентификаторФормы"), ДополнительныеПараметры.ИдентификаторФормы, Неопределено);
      ВызыватьИсключение = ?(ДополнительныеПараметры.Свойство("ВызыватьИсключение"), ДополнительныеПараметры.ВызыватьИсключение, Истина);
      ПолучатьСсылкуНаДвоичныеДанные = ?(ДополнительныеПараметры.Свойство("ПолучатьСсылкуНаДвоичныеДанные"), 
         ДополнительныеПараметры.ПолучатьСсылкуНаДвоичныеДанные, Истина);
      
   Иначе
      ДляРедактирования = УдалитьДляРедактирования;
      ИдентификаторФормы = ДополнительныеПараметры;
      ВызыватьИсключение = Истина;
      ПолучатьСсылкуНаДвоичныеДанные = УдалитьПолучатьСсылкуНаДвоичныеДанные;
   КонецЕсли;
   
   // Федоров А.В. 31.08.21 ++
   Если ТипЗнч(ПрисоединенныйФайл) = Тип("СправочникСсылка.СертификатыНоменклатурыПрисоединенныеФайлы") Тогда
      ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДанныеФайла", "ПрисоединенныйФайл",
      ПрисоединенныйФайл, Метаданные.РегистрыСведений.ДвоичныеДанныеФайловДоп.Измерения.Файл.Тип);   
   Иначе // как было
      
      ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ПрисоединенныйФайл);
      
      ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДанныеФайла", "ПрисоединенныйФайл",
      ПрисоединенныйФайл, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип);
   КонецЕсли;
   // Федоров А.В. 31.08.21 --
      
   ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
   Если ВызыватьИсключение Тогда
      ОбщегоНазначенияКлиентСервер.Проверить(ФайлОбъект <> Неопределено, 
         СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не найден присоединенный файл ""%1"" (%2)'"),
         Строка(ПрисоединенныйФайл), ПрисоединенныйФайл.Метаданные()));
   ИначеЕсли ФайлОбъект = Неопределено Тогда
      Возврат Неопределено;
   КонецЕсли;
   
   Если ДляРедактирования И Не ЗначениеЗаполнено(ФайлОбъект.Редактирует) Тогда
      ФайлОбъект.Заблокировать();
      РаботаСФайламиСлужебный.ЗанятьФайлДляРедактированияСервер(ФайлОбъект);
   КонецЕсли;
   
   УстановитьПривилегированныйРежим(Истина);
   
   СсылкаНаДвоичныеДанныеФайла = Неопределено;
   
   ПоддерживаетсяХранениеВерсий = (ТипЗнч(ПрисоединенныйФайл) = Тип("СправочникСсылка.Файлы"));
   ИспользуетсяВерсионированиеФайлов = ПоддерживаетсяХранениеВерсий
                        И ПрисоединенныйФайл.ХранитьВерсии
                        И ЗначениеЗаполнено(ПрисоединенныйФайл.ТекущаяВерсия);
   
   Если ПолучатьСсылкуНаДвоичныеДанные Тогда
      Если ИспользуетсяВерсионированиеФайлов Тогда
         ДвоичныеДанные = ДвоичныеДанныеФайла(ПрисоединенныйФайл.ТекущаяВерсия, ВызыватьИсключение);
      Иначе
         ДвоичныеДанные = ДвоичныеДанныеФайла(ПрисоединенныйФайл, ВызыватьИсключение);
      КонецЕсли;
      Если ТипЗнч(ИдентификаторФормы) = Тип("УникальныйИдентификатор") Тогда
         СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ИдентификаторФормы);
      Иначе
         СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
      КонецЕсли;
      
   КонецЕсли;
   
   Результат = Новый Структура;
   Результат.Вставить("Ссылка",                       ПрисоединенныйФайл);
   Результат.Вставить("СсылкаНаДвоичныеДанныеФайла",  СсылкаНаДвоичныеДанныеФайла);
   Результат.Вставить("ОтносительныйПуть",            ПолучитьИдентификаторОбъекта(ФайлОбъект.ВладелецФайла) + "");
   Результат.Вставить("ДатаМодификацииУниверсальная", ФайлОбъект.ДатаМодификацииУниверсальная);
   Результат.Вставить("ИмяФайла",                     ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ФайлОбъект.Наименование, ФайлОбъект.Расширение));
   Результат.Вставить("Наименование",                 ФайлОбъект.Наименование);
   Результат.Вставить("Расширение",                   ФайлОбъект.Расширение);
   Результат.Вставить("Размер",                       ФайлОбъект.Размер);
   Результат.Вставить("Редактирует",                  ФайлОбъект.Редактирует);
   Результат.Вставить("ПодписанЭП",                   ФайлОбъект.ПодписанЭП);
   Результат.Вставить("Зашифрован",                   ФайлОбъект.Зашифрован);
   Результат.Вставить("ХранитьВерсии",                ФайлОбъект.ХранитьВерсии);
   Результат.Вставить("ПометкаУдаления",              ФайлОбъект.ПометкаУдаления);
   Результат.Вставить("ДатаЗаема",                    ФайлОбъект.ДатаЗаема);
   Результат.Вставить("Владелец",                     ФайлОбъект.ВладелецФайла);
   Результат.Вставить("АвторТекущейВерсии",           ФайлОбъект.Изменил);
   Результат.Вставить("НавигационнаяСсылка", ПолучитьНавигационнуюСсылку(ПрисоединенныйФайл));
   
   МетаданныеОбъектаФайла = Метаданные.НайтиПоТипу(ТипЗнч(ПрисоединенныйФайл));
   ЕстьВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайла);
   
   Если ЕстьВозможностьХранитьВерсии И ЗначениеЗаполнено(ПрисоединенныйФайл.ТекущаяВерсия) Тогда
      РаботаСФайламиСлужебный.ЗаполнитьДополнительныеДанныеФайла(Результат, ПрисоединенныйФайл, ПрисоединенныйФайл.ТекущаяВерсия);
   Иначе
      РаботаСФайламиСлужебный.ЗаполнитьДополнительныеДанныеФайла(Результат, ПрисоединенныйФайл, Неопределено);
   КонецЕсли;
   
   Результат.Вставить("ФайлРедактируется",            ЗначениеЗаполнено(ФайлОбъект.Редактирует));
   Результат.Вставить("ФайлРедактируетТекущийПользователь",
      ?(Результат.ФайлРедактируется, ФайлОбъект.Редактирует = Пользователи.АвторизованныйПользователь(), Ложь) );
      
   Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
      МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
      Если ФайлОбъект.Зашифрован Тогда
         Результат.Вставить("МассивСертификатовШифрования", МодульЭлектроннаяПодпись.СертификатыШифрования(ПрисоединенныйФайл));
      КонецЕсли;
   КонецЕсли;
   
   Файл = ?(ИспользуетсяВерсионированиеФайлов, ПрисоединенныйФайл.ТекущаяВерсия, ПрисоединенныйФайл);
   Результат.Вставить("Кодировка", РегистрыСведений.КодировкиФайлов.ОпределитьКодировкуФайла(Файл, ФайлОбъект.Расширение));
   
   Результат.Вставить("Служебный", Ложь);
   Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ФайлОбъект, "Служебный") Тогда
      Результат.Служебный = ФайлОбъект.Служебный;
   КонецЕсли;
   
   Возврат Результат;
   
КонецФункции

&Вместо("ДвоичныеДанныеФайла")
Функция РасшСерт_ДвоичныеДанныеФайла(Знач ПрисоединенныйФайл, Знач ВызыватьИсключение)
   
   // Федоров А.В. 31.08.21 ++
   Если ТипЗнч(ПрисоединенныйФайл) = Тип("СправочникСсылка.СертификатыНоменклатурыПрисоединенныеФайлы") Тогда
      ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДвоичныеДанныеФайла", "ПрисоединенныйФайл",
      ПрисоединенныйФайл, Метаданные.РегистрыСведений.ДвоичныеДанныеФайловДоп.Измерения.Файл.Тип);   
   Иначе // как было
      ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДвоичныеДанныеФайла", "ПрисоединенныйФайл",
      ПрисоединенныйФайл, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип);
   КонецЕсли;
   // Федоров А.В. 31.08.21 --
   
   ФайлОбъект = РаботаСФайламиСлужебный.ФайлОбъект(ПрисоединенныйФайл);
   Если ФайлОбъект = Неопределено
      И Не ВызыватьИсключение Тогда
      Возврат Неопределено;
   КонецЕсли;
   
   УстановитьОтключениеБезопасногоРежима(Истина);
   УстановитьПривилегированныйРежим(Истина);
   
   Если ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
      
      Результат = ХранилищеФайлаИзИнформационнойБазы(ФайлОбъект.Ссылка);
      Если Результат <> Неопределено Тогда
         Возврат Результат.Получить();
      КонецЕсли;
      
      // Запись в журнал регистрации.
      СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
         НСтр("ru = 'Двоичные данные файла отсутствуют в регистре ДвоичныеДанныеФайлов.
                    |Файл: ""%1"".'"),
         ПолучитьНавигационнуюСсылку(ПрисоединенныйФайл));
      
      ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Открытие файла'", ОбщегоНазначения.КодОсновногоЯзыка()),
         УровеньЖурналаРегистрации.Ошибка,
         Метаданные.Справочники[ПрисоединенныйФайл.Метаданные().Имя],
         ПрисоединенныйФайл,
         СообщениеОбОшибке);
         
      Если Не ВызыватьИсключение Тогда
         Возврат Неопределено;
      КонецЕсли;
      
      ПредставлениеВладельцаФайла = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'Присоединен к %1 : %2'"),
            Строка(ТипЗнч(ФайлОбъект.ВладелецФайла)),
            ФайлОбъект.ВладелецФайла);
      
      ВызватьИсключение РаботаСФайламиСлужебный.ОшибкаФайлНеНайденВХранилищеФайлов(
         ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ФайлОбъект.Наименование, ФайлОбъект.Расширение), Ложь,
         ПредставлениеВладельцаФайла);
   Иначе
      Возврат РаботаСФайламиВТомахСлужебный.ДанныеФайла(ПрисоединенныйФайл, ВызыватьИсключение);
   КонецЕсли;
   
КонецФункции

&Вместо("ХранилищеФайлаИзИнформационнойБазы")
Функция РасшСерт_ХранилищеФайлаИзИнформационнойБазы(ФайлСсылка)
   
   УстановитьПривилегированныйРежим(Истина);
   
   Запрос = Новый Запрос;
   Запрос.Текст = 
   "ВЫБРАТЬ
   |   ДвоичныеДанныеФайлов.Файл,
   |   ДвоичныеДанныеФайлов.ДвоичныеДанныеФайла
   |ИЗ
   |   РегистрСведений.ДвоичныеДанныеФайлов КАК ДвоичныеДанныеФайлов
   |ГДЕ
   |   ДвоичныеДанныеФайлов.Файл = &ФайлСсылка";
   
   // Федоров А.В. 31.08.21 ++
   Если ТипЗнч(ФайлСсылка) = Тип("СправочникСсылка.СертификатыНоменклатурыПрисоединенныеФайлы") Тогда
      Запрос.Текст = СтрЗаменить(Запрос.Текст, "РегистрСведений.ДвоичныеДанныеФайлов", "РегистрСведений.ДвоичныеДанныеФайловДоп");
   КонецЕсли;
   // Федоров А.В. 31.08.21 --
   
   Запрос.УстановитьПараметр("ФайлСсылка", ФайлСсылка);
   Выборка = Запрос.Выполнить().Выбрать();
   
   Возврат ?(Выборка.Следующий(), Выборка.ДвоичныеДанныеФайла, Неопределено);

КонецФункции
DevКопирование дополнительных свойств и значений вместе с объектом в УФ#9 13.04.21 16:24
не совсем понял это - (8)
Цитата
свойства "ДокументКопирования" нет
у документа, как объекта есть свойство-структура "ДополнительныеСвойства", этой структурой я и воспользовался для хранения документа копирования, чтобы при записи вытащить у него свойства и записать созданному документу.
DevКопирование дополнительных свойств и значений вместе с объектом в УФ#7 08.04.21 19:41
(3) Все намного проще:
1. Не нужны никакие дополнительные реквизиты у документов
2. Записываться при копировании, конечно, документ не будет.
3. Создается подписка на событие ПриКопированииДокумента, в которой будет практически одна строка кода:
Код
Источник.ДополнительныеСвойства.Вставить("ДокументКопирования", ОбъектКопирования.Ссылка);

4. Создается подписка на событие ПриЗаписиДокумента, в которой получаем через чудесные дополнительные свойства документа тот самый объект копирования и вытаскиваем через него значения дополнительных свойств, что-то в этом роде:
Код
ДокументКопирования = Неопределено;
   Если НЕ Источник.ДополнительныеСвойства.Свойство("ДокументКопирования", ДокументКопирования) Тогда
      Возврат;
   КонецЕсли;
   
   // копировать значения не всех подряд свойств
   МассивСвойств = Новый Массив;
   МассивСвойств.Добавить(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("_Автомобиль"));
   МассивСвойств.Добавить(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("_Агент"));

   
   ТЗЗначенийСвойств = ПолучитьСвойстваОбъекта(ДокументКопирования, МассивСвойств);
   
   Если ТЗЗначенийСвойств.Количество() > 0 Тогда
      
      НаборЗаписейСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
      НаборЗаписейСвойств.Отбор.Объект.Установить(Источник.Ссылка);
      
      Для каждого Строка Из ТЗЗначенийСвойств Цикл
         
         Запись = НаборЗаписейСвойств.Добавить();
         ЗаполнитьЗначенияСвойств(Запись, Строка);
         
         Запись.Объект = Источник.Ссылка;
         
      КонецЦикла;
      
      НаборЗаписейСвойств.Записать(Истина);
      
   КонецЕсли;

Источник.ДополнительныеСвойства.Удалить("ДокументКопирования");
ВКОбработка обслуживания торгового оборудования. 1С: 7.7 ТиС#48 25.03.21 10:59
Все хорошо, спасибо, получилось. Только, в закрытии смены, в обработке ФР не хватает методов, как при печати чека - проверить, что не открыто устройство и открыть устройство, иначе оно закрыто (после печати чека устройство зачем то закрывается у вас, не стал менять, делал на коленке, быстро))). Проверить сей факт легко - сразу при открытии 1С, когда устройство автоматом открыто смену закрывает, после печати чеков нет.
ВКДисплей покупателя, второй монитор, поддержка графики, видео, html, javascript, css. Планшет в качестве второго монитора#93 28.01.20 4:43
(92) Раз активно помогаете), не можете подсказать все же, как картинку-видео вывести, на почту обращение отсылал.