Суворов Никита

214
Рейтинг

nekit_rdx
Никита Суворов



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

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

Друзья
  • Дмитрий Малышев
  • Сергей
  • Вадим Коржав
Подписчики 12

Группы

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

Рейтинг 214

Использование флажков в динамических списках

Статья Программист Управляемые формы Бесплатно (free) Нет файла Механизмы платформы 1С

В статье расскажу как в динамических списках можно использовать поле флажка для отметки строк. Используемый прием можно использовать не только для галочек, но и для любого поля ввода. Несмотря на то, что редактирование динамических списков напрямую невозможно, есть способ обойти платформу. Подробности в публикации.

04.08.2020    34496    nekit_rdx    40       

153

"Мягкое" перепроведение документов

Инструменты и обработки Программист Бухгалтер Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Абонемент ($m) Внешняя обработка (ert,epf) Инструменты администратора БД

Бывало ли у вас так, что нужно поправить проведение документа всего по одному регистру? Да еще и без записи самого документа, потому что он не пройдет контроль остатков и не проведется? В статье о том, как это можно сделать в типовых конфигурациях.

1 стартмани

24.01.2020    4573    43    nekit_rdx    3       

23

Полное копирование одной формы в другую

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Универсальные функции

Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде "покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал". Тем не менее, мне стало интересно, как это можно сделать.

1 стартмани

03.10.2019    14749    21    nekit_rdx    26       

38

Комментарии

DevДобавить изображение в карточку номенклатуры программно#7 04.08.23 14:39
Если кому-то вдруг понадобится, рабочий код для обмена с УТ 11.5.11.96 (объекта в базе еще может не быть):

Код
ИмяФайла = ПараметрыОбъекта.Получить("ИмяФайла");

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

   КонецЕсли;
   
КонецЕсли;
ЗарплатаНе указана фамилия подписанта, не выгружается 6-НДФЛ. ЗУП 3.0#9 14.04.23 17:42
(5) Если кто-то как я наивно полагает что по кнопке "Заполнить" шапка обновится, то это не так.
Нужно нажать именно на кнопку "Обновить"!
Спасибо тебе, добрый человек.
Почему 1С не обновляет статичные поля при открытии документа для меня загадка. Не, есть конечно причины, но тогда загадка почему они не обновляются при заполнении
DevДобавление колонок на Диаграмму Ганта#8 06.02.23 11:18
(6) (7) и всем кто как и я попал из гугла. Нужно правой кнопкой нажать на реквизит Диаграмма на форме и выбрать "Добавить колонку реквизита"
DevИспользование флажков в динамических списках#9 06.08.20 11:59
(8) Просто примеры:
1) Различные АРМ закупок, продаж, складские и т.д. Отмечаем галочками заказы, нажимаем кнопку "Можно отгружать", заказы пошли другому отделу
2) Форма выбора из справочника. Можно будет выбирать несколько элементов. Может заменить типовую обработку подбора в документ во всяких УТ, КА, ЕРП.
3) Любая внешняя обработка объектов, в которой перед обработкой может потребоваться их анализ. В динамическом списке, в отличии от обычной таблицы, пользователь может выводить новые колонки, отбирать по ним, сортировать и т.д. В общем, если у вас таблица больше, скажем, 100 элементов в ней уже можно запутаться, особенно если разработчик догадался вывести только наименование.
DevСвойство вариантов &quot;Хранилище вариантов&quot; не заполнено#15 05.08.20 12:24
(10) Спасибо! Надо же было его так запрятать...
DevИспользование флажков в динамических списках#5 05.08.20 11:42
(4) Если подходить с точки зрения пользователя, то ему всё равно, таблица это или динамический список. Да, немного удобнее работать, отборы всякие можно ставить, но технические детали его не интересуют.

Представим что пользователь работает с табличной частью в каком-нибудь заказе. Он отмечает нужные строки галочками, прокручивает список вниз, что должно происходить с пометками которые уползли вверх? Существует ли Луна, когда на нее никто не смотрит?)

То же самое с отборами. В обычной таблице значений, в которой флажки доступны по умолчанию и активно используются, можно выполнить поиск по колонке. В таблице останется одна строка, а остальные будут скрыты. Галочки при этом останутся. И если в таблице значений пользователь вынужден помнить или догадываться о том что он какой-то поиск использовал, то динамическому списку можно установить свойство "Группа пользовательских настроек", отобразить ее на форме, и пользователь всегда будет видеть что список не полный.

Но я при этом абсолютно согласен, что последствия стоит учитывать. Если последствия необратимы, то наверняка стоит предупреждать об этом, желательно со списком изменяемых объектов. А если что-то очень важное, то может стоит подумать над созданием мастера с несколькими шагами.
DevИспользование флажков в динамических списках#3 05.08.20 10:34
(1) Это уже каждый решит для себя, что ему для конкретной задачи нужно :)
Реализовать установку/снятие пометок для нескольких строк сможет любой программист, а вот в статье подобные усложнения отвлекали бы от главного.
DevИспользование флажков в динамических списках#0 04.08.20 7:56
В статье расскажу как в динамических списках можно использовать поле флажка для отметки строк. Используемый прием можно использовать не только для галочек, но и для любого поля ввода. Несмотря на то, что редактирование динамических списков напрямую невозможно, есть способ обойти платформу. Подробности в публикации.
DevДинамический список#39 23.07.20 17:43
(38) Без ТЗ результат ХЗ))
Dev"Мягкое" перепроведение документов#3 07.02.20 12:07
(2) Это, кстати, крутой универсальный способ. Причем даже в типовых конфигурациях для некоторых документов только он и пройдет. Но работает медленно