четверг, 30 июля 2020 г.

УФ. Динамические списки. Скрыть "пустые группы" при отборе В ИЕРАРХИИ

Сама статья здесь https://infostart.ru/1c/articles/413242/ ключевое

    ГруппаКонструктора = Справочники.Номенклатура.НайтиПоКоду("00-00000001");
    
    ОтборПоГруппе = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
    ОтборПоГруппе.ПравоеЗначение = ГруппаКонструктора;

    ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
    
    ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина );
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать",Истина );
    
    ОтборПоГруппе = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
    ОтборПоГруппе.ПравоеЗначение = ГруппаКонструктора;

среда, 22 июля 2020 г.

Как добавить себя в администраторы SQL Server

Дальше ответ со stackflow - ключевое требуется останов SQL сервера

Open a command prompt window. If you have a default instance of SQL Server already running, run the following command on the command prompt to stop the SQL Server service:
net stop mssqlserver
Now go to the directory where SQL server is installed. The directory can for instance be one of these:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn
Figure out your MSSQL directory and CD into it as such:
CD C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn
Now run the following command to start SQL Server in single user mode. As SQLCMD is being specified, only one SQLCMD connection can be made (from another command prompt window).
sqlservr -m"SQLCMD"
Now, open another command prompt window as the same user as the one that started SQL Server in single user mode above, and in it, run:
sqlcmd
And press enter. Now you can execute SQL statements against the SQL Server instance running in single user mode:
create login [<<DOMAIN\USERNAME>>] from windows;

-- For older versions of SQL Server:
EXEC sys.sp_addsrvrolemember @loginame = N'<<DOMAIN\USERNAME>>', @rolename = N'sysadmin';

-- For newer versions of SQL Server:
ALTER SERVER ROLE [sysadmin] ADD MEMBER [<<DOMAIN\USERNAME>>];

GO
UPDATED Do not forget a semicolon after ALTER SERVER ROLE [sysadmin] ADD MEMBER [<<DOMAIN\USERNAME>>]; and do not add extra semicolon after GO or the command never executes.

среда, 18 марта 2020 г.

Управляемые формы. Группа формы. Сворачиваемая и свойство Свернута

В конфигураторе в свойствах группы есть свойство "Свернута" не доступное через средства встроенного языка.

И честно, уже не в первой вводит в ступор, чтобы не забывать, что и как


Начиная с 8.3.12 введены следующие методы для программного управления поведением



Дальше фрагменты из Синтаксис помошника.

Расширение группы формы для обычной группы

Скрыть (Hide)

Синтаксис:
Скрыть()
Описание:
В зависимости от значения свойства Поведение группы:

Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).

Скрыта (Hidden)

Расширение группы формы для обычной группы (Form group extension for a usual group)
Скрыта (Hidden)
Синтаксис:
Скрыта()
Возвращаемое значение:
Тип: Булево.
В зависимости от значения свойства Поведение группы, метод возвращает:
Описание:
Проверяет состояние группы.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). 

Показать (Show)

Расширение группы формы для обычной группы (Form group extension for a usual group)
Показать (Show)
Синтаксис:
Показать()
Описание:
В зависимости от значения свойства Поведение группы:
  • Обычное - никакие действия не выполняются,
  • Свертываемая - разворачивает группу,
  • Всплывающая - группа отображается на экране. Если другая группа была видима, она скрывается.

Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). 

пятница, 20 декабря 2019 г.

Бесшовная интеграция с 1С Документооборотом. Правила интеграции. Значение поля на встроенном языке (пример выбора папки внутренних документов)

Разобрался как задавать произвольные папки в правилах интеграции. Точнее, прежде использовалось выражение на встроенном языке вида
Параметры.Результат = "Наименование папки внутренних документов в ДО";

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

Корень
    |---- Папка 1
           |---- Папка 1

Мы не сможем поместить внутренний документ в конкретный каталог средствами встроенного языка.

При просмотре кода библиотеки интеграции в Ух 3.0.8.11 обнаружил что констекст шире, чем описан в сопроводительной записке редактора выражения на встроенном языке
Параметры = Новый Структура;
Параметры.Вставить("Источник", ВнешнийОбъект);
Параметры.Вставить("Результат", Неопределено);
Параметры.Вставить("РезультатID", Неопределено);
Параметры.Вставить("РезультатТип", Неопределено);

ОбщегоНазначения.ВыполнитьВБезопасномРежиме(НайденнаяСтрока.ВычисляемоеВыражение, Параметры);
    До этого я пытался передавать guid папки в ДО через Параметры.Результат = 

Правильно нужно делать так (guid мы можем подсмотреть через консоль запросов из БСП \ Инструменты разработчика в пункте меню Дополнительно обработки флажок "показывать значения ссылки")
Параметры.Результат = "Отдел снабжения";
Параметры.РезультатID = "b641137a-253f-11df-a400-00055d33dddc";
Параметры.РезультатТип = "DMInternalDocumentFolder";

Обязательно нужно заполнить поле результат (иначе результат не будет зафиксирован), РезультатID - guid на строне ДО, РезультатТип - имя типа из ПакетаXDTO 

среда, 9 октября 2019 г.

Расширение конфигурации + Связанные документы (Режим совместимости 8.3.12)

Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации.

Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавление\изменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP)

Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное.

Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось).

Что нам нужно было бы сделать при отказе от поддержки:

1) добавить наш документ в Критерий отбора (состав, реквизиты);
2) в раздел Ввод на основании целевого документа.

И что с целью сохранения поддержки. Как сделать это же для расширения:

1) Добавить реквизит расширения Документы.ЗаказПоставщику._ЗаказНаРемонт (ДокументСсылка.ЗаказНаРемонт)

2) Добавить команду расширения Документы.ЗаказНаРемонт.Команды._СоздатьЗаказПоставщику (группа: форма \ ввести на основании, параметр: ДокументСсылка.ЗаказНаРемонт)

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

3) Переопределить метод модуля объекта Документы.ЗаказПоставщику

&После("ОбработкаЗаполнения") Процедура лв_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказНаРемонт") Тогда
ЗаполнитьДокументНаОснованииЗаказаНаРемонт(ДанныеЗаполнения); КонецЕсли; 
КонецПроцедуры 

4)  Переопределить методы общей формы СтруктураПодчиненности

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



УФ. Динамические списки. Скрыть "пустые группы" при отборе В ИЕРАРХИИ

Сама статья здесь  https://infostart.ru/1c/articles/413242/  ключевое ГруппаКонструктора = Справочники . Номенклатура . НайтиПоКоду...