Шумаев Алексей

269
Рейтинг

begemot
Алексей Шумаев



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

  •   Был(а) на сайте: вчера в 05:18

Друзья
  • Дмитрий Малышев
  • Александр Шипков
  • Евгений Комиссаров
  • Гордей Голиков
  • Евгения Петрова
  • murad novruzov
  • Дмитрий Петров
  • Андрей Волин
Подписчики 8

Группы

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

Партнер IS-WP

Участник Meetup

Рейтинг 269


Комментарии

DevПроверка доступности прав на уровне RLS на запись объекта#23 12.11.23 13:44
Для обычных форм

Код
// Для определения доступности формы на изменение с учетом РЛС, пробуем записать объект.
//   Если запись не удаласть - значит доступа нет и нужно перевести форму в режим "Только просмотр"
//   В любом случае, после выполнения операции отменяем транзакцию.
Процедура ОграничениеДоступаПоРЛС(Объект, Форма) Экспорт
   
   Если ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей Тогда
      Если НЕ Объект.Ссылка.Пустая() Тогда
         НачатьТранзакцию();
         Попытка
            Объект.Записать();
         Исключение
            УстановитьНедоступностьФормы(Форма);
         КонецПопытки;
         ОтменитьТранзакцию();
         Объект.Прочитать(); // для сбоса флага модифицированности объект нужно перечитать
      КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры

Процедура УстановитьНедоступностьФормы(Форма) Экспорт
   
   Форма.ТолькоПросмотр = Истина;
   
   Для каждого ЭлементФормы Из Форма.ЭлементыФормы Цикл
      ТипЭлемента = ТипЗнч(ЭлементФормы);
      Если ТипЭлемента = Тип("ПолеВвода")
         ИЛИ ТипЗнч(ЭлементФормы) = Тип("ТабличноеПоле")
         ИЛИ ТипЗнч(ЭлементФормы) = Тип("ПолеТабличногоДокумента") Тогда
         ЭлементФормы.ТолькоПросмотр = Истина;
      ИначеЕсли ТипЭлемента = Тип("Кнопка") Тогда
         ЭлементФормы.Доступность = Ложь;
      ИначеЕсли ТипЭлемента = Тип("КоманднаяПанель") Тогда
         ЭлементФормы.Доступность = Ложь;
         УстановитьНедоступностьКнопкамКоманднойПанели(ЭлементФормы.Кнопки);
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры

Процедура УстановитьНедоступностьКнопкамКоманднойПанели(Кнопки)
   
   Для каждого Кнопка Из Кнопки Цикл
      Если Кнопка.ТипКнопки = ТипКнопкиКоманднойПанели.Действие Тогда
         Если Кнопка.ИзменяетДанные Тогда
            Кнопка.Доступность = Ложь;
         КонецЕсли;
         ДействиеСтрокой = Строка(Кнопка.Действие);
         Если ДействиеСтрокой = "Записать" ИЛИ ДействиеСтрокой = "Записать и закрыть" Тогда
            Кнопка.Доступность = Ложь;
         КонецЕсли;
      ИначеЕсли Кнопка.ТипКнопки = ТипКнопкиКоманднойПанели.Подменю Тогда
         УстановитьНедоступностьКнопкамКоманднойПанели(Кнопка.Кнопки);
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры
DevЗагрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ЧтениеXML#84 17.04.22 13:01
Процедуру ИзвлечьДанныеИзФайла_SharedStringsXML нужно доработать.

Бывают ячейки с особым оформлением, когда части строки имеют разное оформление.
Например, ячейка , текст ячейки "R008" в файле SharedStrings будет разбит на части и сохранен с форматированием каждой части:
Код
    <si>
        <r>
            <rPr>
                <b/>
                <sz val="12"/>
                <rFont val="times new roman,serif"/>
            </rPr>
            <t>R</t>
        </r>
        <r>
            <rPr>
                <b/>
                <sz val="10"/>
                <rFont val="times new roman,serif"/>
            </rPr>
            <t>008</t>
        </r>
    </si>

Важно учитывать этот момент, иначе индекс сбивается и данные в выходной таблице значений будут не верными!

Правильный код процедуры:
Код
Функция ИзвлечьДанныеИзФайла_SharedStringsXML(ZIPКаталог)
   Перем Файл, SharedStrings;
   Перем МассивSharedStrings;
   
   // Если в файле EXCEL не содержится значений, имеющих тип "СТРОКА", то файл "SharedStrings.xml" не формируется.
   
   МассивSharedStrings = Новый Массив;
   
   Файл = Новый Файл(ZIPКаталог + "XL\SharedStrings.xml");
   Если НЕ Файл.Существует() Тогда
      Возврат МассивSharedStrings;
   КонецЕсли;
   
   SharedStrings = Новый ЧтениеXML;
   SharedStrings.ОткрытьФайл(Файл.ПолноеИмя);
   
   Пока SharedStrings.Прочитать() Цикл
      Если SharedStrings.Имя = "si" И SharedStrings.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
         ЧастиСтроки = Новый Массив;
      КонецЕсли;
      Если ВРег(SharedStrings.Имя) = "#TEXT" Тогда
         ЧастиСтроки.Добавить(SharedStrings.Значение);
      КонецЕсли;
      Если SharedStrings.Имя = "si" И SharedStrings.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
         МассивSharedStrings.Добавить(СтрСоединить(ЧастиСтроки, ""));
      КонецЕсли;
   КонецЦикла;
   
   // Завершение работы.
   // Закрытие Объектов.
   SharedStrings.Закрыть();
   
   Возврат МассивSharedStrings;
   
КонецФункции
ВКK-SOFT. Эмулятор ККТ с передачей данных. Управляемые формы. ФФД 1.1 (Ревизия 3002)#111 15.04.22 11:29
(110) Проблема решена.
Сделал все заново на чистой базе - все заработало...
ВКK-SOFT. Эмулятор ККТ с передачей данных. Управляемые формы. ФФД 1.1 (Ревизия 3002)#110 11.04.22 13:56
1С:Касса (3.0.10.8) (БПО 3.1.2.16)

При пробитии чека получаю ошибку:
Цитата
При подключении оборудования произошла ошибка: Не удалось подключить устройство (ККТ штрихм для: Касса (.Магазин 11*) КСофт-Эмулятор (77777777)): Ошибка обращения к драйверу.

Ошибка возникает в ОМ.ПодключаемоеОборудованиеДрайверСинхронноКлиент

Прикрепленные файлы:

ОшибкаЭмулятора.jpg
ПубликацииВидеозаписи онлайн-митапа "DevOps в 1С: Инструменты автоматизации рутины в 1С-разработке"#13 11.03.21 9:58
Я 3-ий раз участвую в Онлайн-митапах Инфостарта. Скажу откровенно, при всем моем уважении к докладчикам, этот митап, для меня, оказался самым слабым по информативности.
Андрей Овсянкин - работа с хранилищами в больших командах - интересно, но не моя тема. Это прям для больших команд.
Максим Артеменко - автоматизация защита кода - тоже интересно, но тоже не совсем для меня.
Александр Орефков - очень его уважаю, и очень рад его продукту. Но по сути он ни о чем полезном не рассказал. Самое ценное, то, что они с Андреем Овсянкиным договорились на совместную работу по поддержке 1script в Снегопате.
Павел Комаров - Ansible - для меня эта новая тема. С удовольствием послушал, ознакомился с продуктом.
Александр Капралов - 1С Исполнитель. Вот я вообще не понял зачем это доклад. Понять, что у 1с это сырой продукт? Что нужно жить на 1script? Только если для общего ознакомления. А Александр, конечно большой молодец, что превозмогая все трудности работает с Исполнителем.

После предыдущих митапов ("Тестирование и контроль качества решений на 1С", "Непрерывная интеграция и поставка решений на 1С") - у меня оставался большой конспект, что мне нужно делать у себя, что нужно изучать. После этого митапа - да, поговорили, что-то посмотрели, но именно мой конспект, моя шпаргалка по сути оказалась пустой.

В целом формат онлайн-митапов мне очень интересен. Будут рад, если они будут продолжать, буду в них участвовать.
ПубликацииВидеозаписи онлайн-митапа "DevOps в 1С: CI/CD. Непрерывная интеграция и поставка решений на 1С"#19 23.02.21 11:17
Спасибо за митап. Общение с подобной компании меня очень мотивирует на ПРАВИЛЬНОЕ развитие своего процесса разработки. И, конечно же, очень полезно увидеть воочию, как это все работает у ПРАВИЛЬНЫХ разработчиков!
DevРасширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций#30 08.02.21 11:42
(29)
Цитата
"поле Текст модуля не заполнено"

Нужно исправить ошибку в тексте:

В обработке ПроверкаКода в модуле формы в процедуре ВыполнитьПроверкуКода() нужно строки поменять местами:
Было:
Код
   
   Если Не ПроверитьЗаполнение() Тогда
      Возврат;
   КонецЕсли; 
   ТекстМодуля = ПолучитьТекстМодуля();

Стало:
Код
   
   ТекстМодуля = ПолучитьТекстМодуля();
   Если Не ПроверитьЗаполнение() Тогда
      Возврат;
   КонецЕсли; 
HighLoadВидеозаписи онлайн-митапа "DevOps в 1С: Тестирование и контроль качества решений на 1С"#8 22.01.21 18:03
Спасибо, для меня очень познавательное мероприятие.
DevЗаполнить программно параметры шаблонов сообщений#18 20.01.21 17:11
в модуле ШаблоныСообщенийПереопределяемый,
в процедуре ПриПодготовкеШаблонаСообщения() добавить код:
Код
Для каждого Параметр Из ДополнительныеПараметры.Параметры Цикл
   Если ДополнительныеПараметры.ПараметрыСообщения.Свойство(Параметр.Ключ) Тогда
      ДополнительныеПараметры.ПараметрыСообщения.ПроизвольныеПараметры.Вставить(Параметр.Ключ, ДополнительныеПараметры.ПараметрыСообщения[Параметр.Ключ]);
   КонецЕсли;
КонецЦикла;


Подразумевается, что в ПараметрыСообщения у вас будут лежать значения дополнительных параметров