Бубузяка

62
Рейтинг

Бубузяка



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

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

Друзья
  • Алексей Сложеникин
Подписчики 6

Группы

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

Рейтинг 62

Обработка "Произвольный код"

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

Обработка "Произвольный код" предназначена для составления и исполнения произвольного кода 1С:Предприятия 8 в пользовательском режиме. Данная обработка предназначена в основном для специалистов по внедрению и опытных пользователей. Разработана на основе обработки "Консоль запросов".

1 стартмани

25.11.2009    8495    567    Бубузяка    24       

62

Комментарии

UpdateCFУвеличение количества дополнительных аналитик в БИТ.Финанс#1 30.01.24 10:57
Если вы зарегистрированный пользователь, напишите в поддержку и предоставьте список мест с магическим числом "7". Думаю, вам пойдут на встречу и поставят вызов функции. Так у вас уменьшится количество правок.
ПубликацииНеограниченное количество строк в табличной части документа#12 10.04.23 10:34
Есть решения на infostarte с применением регистра сведений. Измерение - документ, ресурсы - реквизиты таб. части. При записи все пишем в регистр, при чтении все из него читаем. Понятно, что динамическое считывание тут не работает, все сразу летит в форму.
Что касается дикого количества строк, то такое, к сожалению, встречается в бюджетировании, когда документ фиксируется бюджет на 12 мес. в разрезе статей и аналитик.
ПубликацииОсобенность задания периода в запросе в СКД#10 15.11.22 9:56
(8) Я знаю как это работает. Я так же знаю, что в СКД удобно использовать необязательные параметры и это благотворно влияет на формирование виртуальных таблиц. На пример, если вам нужно получить остаток на текущий момент, то не надо передавать Период в Остатки, а вызывать таблицу без периода. Правильно пользуйтесь СКД и не будет "особенностей".
ПубликацииОсобенность задания периода в запросе в СКД#5 14.11.22 11:35
Пропишите параметры в сигнатурах {} и получит параметры,не обязательные для заполнения.

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

2022-11-14_11-31-59.jpg
DevЗаполнение справочника из формы элемента справочника#3 14.04.22 12:53
При создании на сервере в форме элемента напиши проверку:

НеОткрывать = Параметры.ПараметрыВыбора.Владелец.ПрограммаСтрахования <> ДС;

Если НеОткрывать Тогда
ВызватьИсключение НСтр("ru = 'Для видов программ страхования отличных от ДС ввод данных в справочник недоступен.'");
КонецЕсли;

Предполагается, что форма у тебя открывается с заполненным параметром выбора "Владелец". По хорошему, надо проверять параметры, читать данные владельца запросом ... Это пример "на коленке".
ПубликацииГенератор кода схемы компоновки данных (СКД)#16 08.02.21 10:37
Ошибка при генерации кода:
Код
Поле объекта не обнаружено (СвязиНаборовДанных)
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(824)}:      СтруктураКода.СвязиНаборовДанных.Добавить(КодРазбора.ПолучитьТекст());
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(113)}:   СгенерироватьКодНаСервере();

Видимо, иногда, в "СтруктураКода.СвязиНаборовДанных" СвязиНаборовДанных - структура.
Схема, вызывающая ошибку в файле.

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

1.xml
ПубликацииГенератор кода схемы компоновки данных (СКД)#15 08.02.21 10:17
Конечно, плюс. Делать такие операции приходится не часто, а писать инструмент лениво.
ПубликацииЗначения по умолчанию для пользователей (Расширение)#25 28.09.20 9:22
Предложенный функционал, конечно, имеет право на существование. Однако, как учитываются связанные реквизиты? На пример, Контрагент-Договор, Организация - банковский счет. В формах бывают настройки параметров выбора данных. Предложенное решение этого не учитывает.
В БП, для подключения функционала, наверно , лучше использовать это место: ЗаполнениеДокументов.Заполнить() Вы заполните объект при вводе интерактивно и если его будет создавать Ваш коллега программно, если не поленится выполнить метод Заполнить(Неопределено).
Не все прикладные объекты могут быть подключены к подсистеме версионирования.
DevИспользование флажков в динамических списках#23 10.08.20 18:04
Хорошее решение, но мне не понравилось перечитывание данных списка.

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

&НаСервере
Процедура УстановитьСписокВыбранныхДокументов()
   
   ЭлементУсловногоОформления = Неопределено;
   Для каждого ЭлементОформления Из УсловноеОформление.Элементы Цикл
      Если ЭлементОформления.Представление = "Выделение подобранных" Тогда
         ЭлементОформления.Отбор.Элементы[0].ПравоеЗначение = Карзина;
      КонецЕсли;
      Если ЭлементОформления.Представление = "Выделение подобранных1" Тогда
         ЭлементОформления.Отбор.Элементы[0].ПравоеЗначение = Карзина;
      КонецЕсли; 
   КонецЦикла; 
   
КонецПроцедуры

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   
   Если Поле = Элементы.СписокПоле1 ИЛИ Поле = Элементы.СписокПоле2 Тогда
      Ссылка = Элементы.Список.ТекущаяСтрока;
      СтандартнаяОбработка = Ложь;
      Запись = Карзина.НайтиПоЗначению(Ссылка);
      Если Запись = Неопределено Тогда
         Карзина.Добавить(Ссылка);
      Иначе
         Карзина.Удалить(Карзина.Индекс(Запись));
      КонецЕсли;
      УстановитьСписокВыбранныхДокументов();
   КонецЕсли;
   
КонецПроцедуры
Управление проектамиКак завести у себя в команде код-ревью. Отвечаем на вопросы#29 15.12.19 10:21
Автор, снимаю шляпу.
Руковожу группой разработки отраслевого решения (коробка на продажу) крупного франча. Команда разработчиков, включая меня, 4 человека.

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

Внутренних стандартов практически нет. В работе только Стандарты разработки от 1С, рекомендации с ИТС. Стилистику кода заимствуем из 1С:БП.

После того, как в истории хранилища появилась возможность выборочно сравнивать код объектов, мы отказались от маркировки изменений внутри "своих" объектов. Изменения объектов поставщика маркируем обезличенными маркерами, ибо, нефиг стране знать героев и тщеславие - грех :) Маркировка, конечно, нужна. Упрощает процесс обновления типовой части и гуманно по отношении к нашим коллегам на проектах и в группах сопровождения у потребителей. Некоторые обновляю типовую часть не дожидаясь нас.

Для проверки решения используем конфигурацию 1С "Автоматическая проверка конфигураций". Они ее регулярно обновляют, делая умнее. Сразу исправляем критические ошибки. После каждого релиза, это 3й знак в версии конфигурации по стандартам 1С, садимся за исправление того, что осталось, уменьшая технический долг. Ведь каждые 2 года сертификация на 1С-совместимо, а они там не разбираются где отступление от Стандартов, а где "проектное решение".