Имя: Пароль:
1C
 
Как вставить дополнительную обработку в 3.0?
0 Мисти
 
01.11.15
16:12
Прописала там всё, что положено, но она не появилась даже после настройки списка!
1 zak555
 
01.11.15
16:14
1. функцию СведенияОВнешнейОбработке покажи
2. прочти http://its.1c.ru/db/bspdoc#content:427:1
2 Мисти
 
01.11.15
16:14
Я не понимаю, почему я не  могу отправить сообщение с подробностями?
3 Мисти
 
01.11.15
16:17
ОШИБКА: Сработал фильтр на язык падонков (удафком) на слово "получить таблицу команд". Пишите по-русски!
4 SleepyHead
 
гуру
01.11.15
16:21
(3) Какой еще намек вам нужен, чтобы пойти и купить книгу о здоровой пище?
5 Мисти
 
01.11.15
16:41
А что, теперь нельзя писать куски кода? Там же полно выражений без пробелов!
6 Мисти
 
01.11.15
16:43
// Интерфейс для регистрации обработки.
// Вызывается при добавлении обработки в справочник "Внешние Обработки"
//
// Возвращаемое значение:
// Структура:
// Вид - строка - возможные значения:    "Дополнительная Обработка"
//                                        "Дополнительный Отчет"
//                                        "Заполнение Объекта"
//                                        "Отчет"
//                                        "Печатная Форма"
//                                        "Создание Связанных Объектов"
//
// Назначение - массив строк имен объектов метаданных в формате:
//            <Имя Класса Объекта Метаданного>.[ * | <Имя Объекта Метаданных>]
//            Например, "Документ.Счет Заказ" или "Справочник.*"
//            Прим. параметр имеет смысл только для назначаемых обработок
//
// Наименование - строка - наименование обработки, которым будет заполнено
//                        наименование справочника по умолчанию - краткая строка для
//                        идентификации обработки администратором
//
// Версия - строка - версия обработки в формате <старший номер>.<младший номер>
//                    используется при загрузке обработок в информационную базу
// Безопасный Режим – Булево – Если истина, обработка будет запущена в безопасном режиме.
//                            Более подбробная информация в справке.
//
// Информация - Строка- краткая информация по обработке, описание обработки
//
// Версия БСП - Строка - Минимальная версия БСП, на которую рассчитывает код
// дополнительной обработки. Номер версии БСП задается в формате «РР.ПП.ВВ.СС»
// (РР – старший номер редакции; ПП – младший номер ре-дакции; ВВ – номер версии; СС – номер сборки).
//
// Команды - Таблица Значений - команды, поставляемые обработкой, одная строка таблицы соотвествует
//                            одной команде
//                колонки:
//                 - Представление - строка - представление команды конечному пользователю
//                 - Идентификатор - строка - идентефикатор команды. В случае печатных форм
//                                            перечисление через запятую списка макетов
//                 - Использование - строка - варианты запуска обработки:
//                        "Открытие Формы" - открыть форму обработки
//                        "Вызов Клиентского Метода" - вызов клиентского экспортного метода из формы обработки
//                        "Вызов Серверного Метода" - вызов серверного экспортного метода из модуля объекта обработки
//                 - Показывать Оповещение – Булево – если Истина, требуется оказывать оповещение при начале
//                                и при окончании запуска обработки. Прим. Имеет смысл только
//                                при запуске обработки без открытия формы.
//                 - Модификатор – строка - для печатных форм MXL, которые требуется
//                                        отображать в форме Печать Документов подсистемы Печать
//                                        требуется установить как "ПечатьMXL"
//
Функция Сведения ОВнешней Обработке() Экспорт
    
    // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
    Параметры Регистрации = Новый Структура;
    
    // Объявим еще одну переменную, которая нам потребуется ниже
    Массив Назначений = Новый Массив;
    
    // Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
    // Допустимые типы: Дополнительная Обработка, Дополнительный Отчет, Заполнение Объекта, Отчет, Печатная Форма, Создание Связанных Объектов
    Параметры Регистрации.Вставить("Вид", "Дополнительная Обработка");
    
    // Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ
    // Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе,
    // которые поддерживают механизм ВПФ
    //Массив Назначений.Добавить("Документ.Заказ Клиента");
    Параметры Регистрации.Вставить("Назначение", Массив Назначений);
    
    // Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
    ПараметрыР егистрации.Вставить("Наименование", "Создание ОРП по ПКО и КК");
    
    // Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод Установить Безопасный Режим)
    Параметры Регистрации.Вставить("Безопасный Режим", Ложь);
    
    // Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
    Параметры Регистрации.Вставить("Версия", "0.0");    
    Параметры Регистрации.Вставить("Информация", "Создание ОРП по ПКО и КК");
    
    // Создадим таблицу команд (подробнее смотрим ниже)
    Таблица Команд = Получить Таблицу Команд();
    //
    //// Добавим команду в таблицу
    //ДобавитьКоманду(ТаблицаКоманд, "E", "Диадок", "Вызов Серверного Метода", Истина, "ПечатьMXL");
    //
    
    СтрокаТЧ = ТаблицаКоманд.Добавить();
    СтрокаТЧ.Идентификатор = "СоздатьОРП";
    СтрокаТЧ.Представление = "Создание ОРП по ПКО и КК";
    СтрокаТЧ.ПоказыватьОповещение = Ложь;
    СтрокаТЧ.Использование = "ОткрытиеФормы";
    
    //// Сохраним таблицу команд в параметры регистрации обработки
    Параметры Регистрации.Вставить("Команды",  );
    
    // Теперь вернем системе наши параметры
    Возврат Параметры Регистрации;
КонецФункции


/////////////////////////////////////////////////////////////////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

Функция Получить Таблицу Команд()
    
    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;
    
    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    
    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    
    // Тут задается, как должна вызваться команда обработки
    // Возможные варианты:
    // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
    // - Вызов Клиентского Метода - вызвать клиентскую экспортную процедуру из модуля формы обработки
    // - Вызов Серверного Метода - вызвать серверную экспортную процедуру из модуля объекта обработки
    Команды.Колонки.Добавить("Использование", Новый Описание Типов("Строка"));
    
    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить("Показывать Оповещение", Новый Описание Типов("Булево"));
    
    // Для печатной формы должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить("Модификатор", Новый Описание Типов("Строка"));
    Возврат Команды;
Конец Функции
7 Мисти
 
01.11.15
16:53
В "настроить список" - есть, но в список реально не добавляется.
8 Мимохожий Однако
 
01.11.15
16:55
Это что?
Параметры Регистрации.Вставить("Команды",  );
9 SleepyHead
 
гуру
01.11.15
17:04
(5) Используйте из общего модуля куски кода и потом добавляйте свое.

Сведения = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
Сведения.ПараметрыРегистрации.Наименование = "Создание ОРП по ПКО и КК";
// и так далее
10 Мисти
 
01.11.15
17:07
Я украла из обработки, которая прекрасно открывается. Другой вопрос, что, возможно, я взяла не всё.
Млжет, что-то еще должно быть в самой форме?
А я взяла только всё из модуля?
11 Мисти
 
01.11.15
17:25
Добавила "приСозданииНаСервере", не помогло.
Какая-то там идет фильтрация, почему не видно мою обработку?
12 Мисти
 
01.11.15
17:55
Перем Команда_ОткрытиеФормы;
/////////////////////////////////////////////////////////////////////////////
// ОПИСАНИЕ ИНТЕРФЕЙСОВ

// Интерфейс для регистрации обработки.
// Вызывается при добавлении обработки в справочник "ВнешниеОбработки"
//
// Возвращаемое значение:
// Структура:
// Вид - строка - возможные значения:    "ДополнительнаяОбработка"
//                                        "ДополнительныйОтчет"
//                                        "ЗаполнениеОбъекта"
//                                        "Отчет"
//                                        "ПечатнаяФорма"
//                                        "СозданиеСвязанныхОбъектов"
//
// Назначение - массив строк имен объектов метаданных в формате:
//            <ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>]
//            Например, "Документ.СчетЗаказ" или "Справочник.*"
//            Прим. параметр имеет смысл только для назначаемых обработок
//
// Наименование - строка - наименование обработки, которым будет заполнено
//                        наименование справочника по умолчанию - краткая строка для
//                        идентификации обработки администратором
//
// Версия - строка - версия обработки в формате <старший номер>.<младший номер>
//                    используется при загрузке обработок в информационную базу
// БезопасныйРежим – Булево – Если истина, обработка будет запущена в безопасном режиме.
//                            Более подбробная информация в справке.
//
// Информация - Строка- краткая информация по обработке, описание обработки
//
// ВерсияБСП - Строка - Минимальная версия БСП, на которую рассчитывает код
// дополнительной обработки. Номер версии БСП задается в формате «РР.ПП.ВВ.СС»
// (РР – старший номер редакции; ПП – младший номер ре-дакции; ВВ – номер версии; СС – номер сборки).
//
// Команды - ТаблицаЗначений - команды, поставляемые обработкой, одная строка таблицы соотвествует
//                            одной команде
//                колонки:
//                 - Представление - строка - представление команды конечному пользователю
//                 - Идентификатор - строка - идентефикатор команды. В случае печатных форм
//                                            перечисление через запятую списка макетов
//                 - Использование - строка - варианты запуска обработки:
//                        "ОткрытиеФормы" - открыть форму обработки
//                        "ВызовКлиентскогоМетода" - вызов клиентского экспортного метода из формы обработки
//                        "ВызовСерверногоМетода" - вызов серверного экспортного метода из модуля объекта обработки
//                 - ПоказыватьОповещение – Булево – если Истина, требуется оказывать оповещение при начале
//                                и при окончании запуска обработки. Прим. Имеет смысл только
//                                при запуске обработки без открытия формы.
//                 - Модификатор – строка - для печатных форм MXL, которые требуется
//                                        отображать в форме ПечатьДокументов подсистемы Печать
//                                        требуется установить как "ПечатьMXL"
//
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
    //ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
    ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Создание ОРП по ПКО и КК'"));
    ПараметрыРегистрации.Вставить("Версия", "1.06");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Создание ОРП по ПКО и КК'"));
    ПараметрыРегистрации.Вставить("ВерсияБСП", "3.0.37.44");
    
    ТаблицаКоманд = Получить Таблицу Команд();
    
    ДобавитьКоманду(ТаблицаКоманд,
                    НСтр("ru = 'Создание ОРП по ПКО и КК'"),
                    Команда_ОткрытиеФормы,
                    "ОткрытиеФормы",
                    Ложь);
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции  

/////////////////////////////////////////////////////////////////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ


Функция Получить Таблицу Команд()
    
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
    
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
КонецПроцедуры  

// БЛОК СОБСТВЕННЫХ ФУНКЦИЙ ОБРАБОТКИ

Команда_ОткрытиеФормы = "ОткрытиеФормы";
13 Мисти
 
01.11.15
17:56
Вот второй вариант, полностью скопировала модуль, всё остальное и у меня и там - в форме. То, откуда украла - есть в списке. Моего - нет.
14 Мисти
 
01.11.15
18:07
ТекстЗапроса =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
        |    БыстрыйДоступ.ДополнительныйОтчетИлиОбработка КАК Ссылка,
        |    БыстрыйДоступ.ИдентификаторКоманды
        |ПОМЕСТИТЬ втБыстрыйДоступ
        |ИЗ
        |    РегистрСведений.ПользовательскиеНастройкиДоступаКОбработкам КАК БыстрыйДоступ
        |ГДЕ
        |    БыстрыйДоступ.Пользователь = &ТекущийПользователь
        |    И БыстрыйДоступ.Доступно = ИСТИНА
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ТаблицаБыстрыйДоступ.Ссылка,
        |    ТаблицаБыстрыйДоступ.ИдентификаторКоманды
        |ПОМЕСТИТЬ втСсылкиИКоманды
        |ИЗ
        |    втБыстрыйДоступ КАК ТаблицаБыстрыйДоступ
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДополнительныеОтчетыИОбработки КАК ДопОтчетыИОбработки
        |        ПО ТаблицаБыстрыйДоступ.Ссылка = ДопОтчетыИОбработки.Ссылка
        |            И (ДопОтчетыИОбработки.ПометкаУдаления = ЛОЖЬ)
        |            И (ДопОтчетыИОбработки.Вид = &Вид)
        |            И (ДопОтчетыИОбработки.Публикация = &Публикация)
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДополнительныеОтчетыИОбработки.Разделы КАК ТаблицаРазделы
        |        ПО ТаблицаБыстрыйДоступ.Ссылка = ТаблицаРазделы.Ссылка
        |            И (ТаблицаРазделы.Раздел = &СсылкаРаздела)
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ТаблицаКоманды.Ссылка,
        |    ТаблицаКоманды.Идентификатор,
        |    ТаблицаКоманды.ЗаменяемыеКоманды,
        |    ТаблицаКоманды.ВариантЗапуска,
        |    ТаблицаКоманды.Представление КАК Представление,
        |    ТаблицаКоманды.ПоказыватьОповещение,
        |    ТаблицаКоманды.Модификатор
        |ИЗ
        |    втСсылкиИКоманды КАК ТаблицаСсылкиИКоманды
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДополнительныеОтчетыИОбработки.Команды КАК ТаблицаКоманды
        |        ПО ТаблицаСсылкиИКоманды.Ссылка = ТаблицаКоманды.Ссылка
        |            И ТаблицаСсылкиИКоманды.ИдентификаторКоманды = ТаблицаКоманды.Идентификатор
        |            И (ТаблицаКоманды.Скрыть = ЛОЖЬ)
        |
        |УПОРЯДОЧИТЬ ПО
        |    Представление"
15 Мисти
 
01.11.15
18:07
Это запрос, которому моя обработка почему-то не удовлетворяет.
16 Мисти
 
01.11.15
18:59
ау? Очень нужно!
17 SleepyHead
 
гуру
01.11.15
19:06
Книга о вкусной и здоровой пище. Вот что вам нужно :)
18 ДенисЧ
 
01.11.15
19:06
Возьми этот  запрос в консоль и убери все условия.
Потом по очереди добавляй.
Так ты обретёшь просветление и понимание, что нужно варить борщ, а не (ш)кодить в 1с
19 Мисти
 
01.11.15
19:09
Ну а так, глазами не видно?
У меня нет консоли для управляемых форм.
20 mehfk
 
01.11.15
19:09
(18) Не порти театр одного актера.
21 ДенисЧ
 
01.11.15
19:09
(19) Хочешь, продам тебе подписку на ИТС? Там есть искомая консоль...
22 Мисти
 
01.11.15
19:10
19 а это идея! Я из реального запроса сейчас выкину условия.
23 ДенисЧ
 
01.11.15
19:10
(20) Не мешай мне помогать даме вылезти из лужи, куда она героическими усилиями постоянно залезает.
24 Мисти
 
01.11.15
19:12
Мне лучше ссылку на консоль, раз ты такой добренький.
(хоть бы и на ИТС, доступ есть!)
25 mehfk
 
01.11.15
19:15
(23) так я и не мешаю, так - советую наблюдателем оставаться.
26 Мисти
 
01.11.15
19:37
Пришлось закомментировать единственный кусочек
И (ТаблицаРазделы.Раздел = &СсылкаРаздела) и всё появилось.
посоветуйте!!
27 Тoлько_
Просмотр
 
01.11.15
21:51
Когда устанавливаешь обработку нужно добавить ее в раздел и выбрать пользователей, кому она будет видна.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.