arefaste/1C_Forums huggingface dataset:
Добрый день

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

Конфигурация Розница 2 магазин бытовой техники
---
нашел необходимую роль "Добавление изменение номенклатуры" но не нашел нигде в конфигураторе упоминание этой роли как ограничителя по функционалу регистра штрихкод.
Если кто либо сталкивался то прошу подсказать как реализован этот механизм
---
попробуй в профиле поставить галочку "Регистрация штрих-кодов номенклатуры"
---
увы не помогло
---
помимо типовых базовых ролей (Базовые права БСП,Базовые права РТ)
у пользователя добавлена роль которая создана на основании копирования и небольшого корректирования "полных прав" .
видимо где то простовляется ограничение но никак не могу найти где
---
а роль добавлена пользователю в конфигураторе или в профиль группы?
---
все роли добавлены были в конфигураторе
---
роли добавлены и после были протестированы. все работает корректно кроме регистра штрихкоды
---
Откройте в конфигураторе этот регистр и посмотрите Права - там все и увидите - какие роли имеют доступ к нему
---
в описании темы написано что все галочки проставлены.
Возможно стоило написать более точнее
---
А РЛС случайно не используется? Форма списка/выбора назначена регистру? Если там дин список, задана основная таблица?
---
на рс штрихкоде стоит замок ( не редактировалась) . типовые формы есть. в рлс изменений не вносил
---
ап.
заментил все что возможно в этом регистре. результат тот же.
скопировал полные права и назначил их пользователю но и это не помогло
---
нашел необходимую роль "Добавление изменение номенклатуры" но не нашел нигде в конфигураторе упоминание этой роли как ограничителя по функционалу регистра штрихкод.
Если кто либо сталкивался то прошу подсказать как реализован этот механизм
---
в Рознице не смотрел, но в УТ у этой роли стоит Изменение / Редактирование РС ШтрихкодыНоменклатуры
---
и тут так же. но эти права были и в моей роли и копировании этой роли не решало проблему . где то в коде стоит условие на точное наименование но глобальный поиск не дал результатов
---
Спасибо за ответы. Найти условие на наименование не смог но в целом вопрос закрыт
Есть документ "СчетФактура". У него возможно указать три разных документа основания :

a) Возврат товаров от покупателя
b) Возврат товаров поставщику
c) Поступление товаров и услуг

У каждого из этих документов есть реквизит "ПунктРазгрузки".

Мне необходимо в запросе сделать так, чтобы был один ПунктРазгрузки, но у разных документов основании. Как это реализовать ?
---
Додумался сам. Поместил во временную таблицу три запроса из трёх документов. Вывел у них ссылку и ПунктРазгрузки. Объединил их.

В СчетФактуре связал левым соединением с временной таблицей по полю Ссылка и ДокументОснование.

Вывел одно поле ПунктРазгрузки.
Не уверен,корректно ли это правда.Прокомментируйте пожалуйста.
---
соединяйте по ПунктуРазгрузки и будет он один в строке если пункты разгрузки будут разные будут две строки
---
Додумался сам. Поместил во временную таблицу три запроса из трёх документов. Вывел у них ссылку и ПунктРазгрузки. Объединил их.

В СчетФактуре связал левым соединением с временной таблицей по полю Ссылка и ДокументОснование.

Вывел одно поле ПунктРазгрузки.
Не уверен,корректно ли это правда.Прокомментируйте пожалуйста.
---
покажите запрос
---
Можно поподробнее о задаче, а то не совсем понятно, что вы подразумеваете под "был один ПунктРазгрузки, но у разных документов основании". То ли нужно объединение, то ли подставлять разный источник в зависимости от условия.
---
Ну смотрите. Для одного документа я смогу сделать это.
Тоесть сделаю левое соединение СчетФактура.ДокументОснование = ПоступлениеТоваровИУслуг.Ссылка

И выберу у Поступление товаров и услуг ПунктРазгрузки. и Всё будет ок.

Но как в одном запросе сделать для трёх документов один пунктРазгрузки?
---
Чтобы он был где? В выборке, в условии? Какие еще данные нужны?
---
Ну для одного документа я реализую спокойно пункт разгрузки. Не пойму как в одном запросе все три документа соединить с СчетФактурой и выбрать одно общее поле.

В итоге я вывожу этот запрос в ТЧ списком.
И может быть куча разных СчетФактур с разным основании и соответственно разные ПунктыРазгрузки.
---
Вы даже задачу сформулировать не можете.
---
Выбрать в запросе
СчетФактура.ДокументОснование.ПунктРазгрузки
Здравствуйте. Есть отчет ведомость расчетов с клиентами в ЕРП. У манагеров ограничение по подразделениям. Но они все равно видят весь отчет, просто где доступа нет - там Объект не найден, а цифры есть. Что можно сделать чтоб цифры в отчет не выходили?
---
РЛС по подразделениям может не распространятся на регистры взаиморасчетов.
Например для расчетов с клиентами там шаблон:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрНакопленияРасчетыСКлиентамиПоДокументам", "АналитикаУчетаПоПартнерам", "", "", "", "")
#Иначе
#ПоЗначениямРасширенный( "РегистрНакопления.РасчетыСКлиентамиПоДокументам","Чтение","",
"ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК Т1
ПО Т.АналитикаУчетаПоПартнерам = Т1.КлючАналитики",
"",
"Организации","Т1.Организация","И",
"ГруппыПартнеров","Т1.Партнер","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )
#КонецЕсли

Из него видно, что ограничение будет действовать на группы партнеров и организации, а на подразделение нет.
Как вариант - писать свою роль. Или переделать отчет, например сначала в отчете отобрать все разрешенные подразделения, а затем наложить отбор на таблицы расчетов.
---
Отчет типовой? или самописный?
Если смописный, то его нужно исправить в части получать РАЗРЕШЕННЫЕ данные из базы...
---
попробовать добавить в отчет,во все Выбрать Разрешенные ?
---
Как вариант, прописать рлс для регистров, откуда берутся цифры.
---
Отчет типовой, стандартный
---
РЛС по подразделениям может не распространятся на регистры взаиморасчетов.
Например для расчетов с клиентами там шаблон:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрНакопленияРасчетыСКлиентамиПоДокументам", "АналитикаУчетаПоПартнерам", "", "", "", "")
#Иначе
#ПоЗначениямРасширенный( "РегистрНакопления.РасчетыСКлиентамиПоДокументам","Чтение","",
"ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК Т1
ПО Т.АналитикаУчетаПоПартнерам = Т1.КлючАналитики",
"",
"Организации","Т1.Организация","И",
"ГруппыПартнеров","Т1.Партнер","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )
#КонецЕсли

Из него видно, что ограничение будет действовать на группы партнеров и организации, а на подразделение нет.
Как вариант - писать свою роль. Или переделать отчет, например сначала в отчете отобрать все разрешенные подразделения, а затем наложить отбор на таблицы расчетов.
Собственно вопрос по УФ.
При изменении реквизита на управляемой форме нужно открыть форму того же документа с заполненными данными. Как?
---
Можно посмотреть публикацию https://infostart.ru/public/118784/ Но еще нужно передать параметры при получении формы,
например:
 ПараметрыОткрытия = Новый Структура("Ключ", Параметры.Ключ);
 Форма = ПолучитьФорму("Документ.НашДокумент.Форма.ФормаДокументаИзменения", ПараметрыОткрытия);
---
ОткрытьФорму("Документ.НужныйДокумент.Форма.НужнаяФорма",ПараметрыОткрытия,ЭтотОбъект, УникальныйИдентификатор);
---
К сожалению открывает не заполненный документ
---
Можно посмотреть публикацию https://infostart.ru/public/118784/ Но еще нужно передать параметры при получении формы,
например:
 ПараметрыОткрытия = Новый Структура("Ключ", Параметры.Ключ);
 Форма = ПолучитьФорму("Документ.НашДокумент.Форма.ФормаДокументаИзменения", ПараметрыОткрытия);
Добрый день!
Нужно создать элемент справочника Банки, хочу взять из Классификатор банков РФ.
Можно найти по БИК в последнем, перебрать все поля, подставить значения, есть ли способ проще?
Экспортная процедура какая нибудь стандартная?
---
// Функция осуществляет подбор данных классификатора, для копирования в элемент справочника Банки.
// Если такого банка ещё нет, то он создается.
// Если банк находится в иерархии не на первом уровне, то создается/копируется вся цепочка родителей.
//
// Параметры:
//
// - СсылкиБанков - Массив с элементами типа СправочникСсылка.КлассификаторБанков - список значений классификатора
// которые необходимо обработать
// - ИгнорироватьРучноеИзменение - Булево - указание не обрабатывать банки, измененные вручную
//
// Возвращаемое значение:
//
// - Массив с элементами типа СправочникСсылка.Банки
//
Функция ПодобратьБанкИзКлассификатора(Знач СсылкиБанков, ИгнорироватьРучноеИзменение = Ложь) Экспорт
---
посмотрите модули менеджера справочника, поищите по ключевым словам: "банк", "бик" и т.п. глобальным поиском с фильтром на общие модули, общие команды, обработки.

если ничего не найдете, то повторите вопрос спустя 15 минут.
может быть кто-то ответит раньше и вы опять упустите шанс стать опытнее
и всякий раз будет ждать пинка.
---
посмотрите модули менеджера справочника, поищите по ключевым словам: "банк", "бик" и т.п. глобальным поиском с фильтром на общие модули, общие команды, обработки. если ничего не найдете, то повторите вопрос спустя 15 минут.
может быть кто-то ответит раньше и вы опять упустите шанс стать опытнее.....

Не упустил, до написания темы естественно туда залез.
---
Я посмотрел обработку ЗагрузкаКлассификатораБанков.МодульМенеджера.
Вердикт - там треш и угар по ассинрону, доступу к ИТС, файловой системе...

У новичка там башню снесет точно, даже с моим ангельским терпением прыжки по стеку привели к закипанию.
БРАВО 1С - дилетантам тут не место!)

Только что будет с сетью франчайзи когда всепонимающие динозавры уйдут на покой, а молодая поросль падет в бесплодных попытках понять гениальную логику БСП? Ответ очевиден и похож на арктического пушного зверька.
---
// Функция осуществляет подбор данных классификатора, для копирования в элемент справочника Банки.
// Если такого банка ещё нет, то он создается.
// Если банк находится в иерархии не на первом уровне, то создается/копируется вся цепочка родителей.
//
// Параметры:
//
// - СсылкиБанков - Массив с элементами типа СправочникСсылка.КлассификаторБанков - список значений классификатора
// которые необходимо обработать
// - ИгнорироватьРучноеИзменение - Булево - указание не обрабатывать банки, измененные вручную
//
// Возвращаемое значение:
//
// - Массив с элементами типа СправочникСсылка.Банки
//
Функция ПодобратьБанкИзКлассификатора(Знач СсылкиБанков, ИгнорироватьРучноеИзменение = Ложь) Экспорт
---
Если не указана конфигурация, то де-факто речь идет о последних на момент темы версиях БСП.

ПодобратьБанкИзКлассификатора в последних версиях нет, значит ваш вопрос поставлен не корректно.
В последних БСП:
Обработки.ЗагрузкаКлассификатораБанков.ЗаписатьЭлементКлассификатораБанковРФ(ПараметрыЗагрузкиДанных)
правда этот метод не экспортный.
Добрый день, сломал голову, не могу придумать, откуда берутся параметры отбора.
Итак, есть типовая буха 3.0.74.76. Есть документ "Реализация" вида "Товары, услуги, комиссия". Хочу выбирать абсолютно любой вид договора, но!
Форма для данного документа "ФормаДокументаОбщая" и у элемента формы "ДоговорКонтрагента" параметры выбора пустые. В модуле формы никакого заполнения не нашел. Но при попытке выбора договора через "Показать все" открывается форма выбора справочника "Договоры контрагентов" и в массиве Параметры.Отбор.ВидДоговора уже есть значения. Вопрос - откуда они там берутся? Не могу поймать отладчиком.
---
Нашел. Модуль менеджера документа.
---
смотрите конструктор формы элемент Договор, настройка Отбора, см.рис
---
Для документа с типом "Товары, услуги, комиссия" используется ФормаДокументаОбщая, в которой данные поля не заполнены, поэтому и возник вопрос, откуда это берется (потому что даже при незаполненном отбор в форме выбора все равно заполняется)
---
См. скрин. Вроде в реквизите то,что ищешь.
---
Нет, даже если оттуда все удалить, все равно параметры отбора заполнятся - будет фиксированный массив со значениями "С покупателем" и "С комиссионером (агентом) на продажу"
---
Нашел. Модуль менеджера документа.
---
Да, именно!! Спасибо. Только для одного вида реализаций происходит заполнение программное параметров отбора при создании документа.
Две другие формы заполняют параметры выбора по-человечески.
---
ааа, на этой форме, программно отбор задается, вот код

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

 РаботаСДоговорамиКонтрагентовБПКлиент.ДоговорОбработкаВыбора(Элемент, ВыбранноеЗначение, ПараметрыДоговора, СтандартнаяОбработка);
КонецПроцедуры
---
Нет, по отладчику сначала отрабатывает процедура "ПриСозданииНаСервере" формы выбора справочника "ДоговорыКонтрагентов", и только после выбора там отрабатывает вот эта процедура. В "ПриСозданииНаСервере" отбор уже заполнен, стек вызовов помочь не может(
В регистре сведений нужно хранить итоговую цифру за год, как в форме при выборе даты оставить только год без месяца и числа, подскажите пожалуйста, форматирование даты выбора только из года не предусматривает.
---
В итоге сделал так:
В регистре сведений поставил периодичность: В пределах года, Режим записи: Независимый, добавил ресурс Сумма.
Добавил ФормуЗаписи, в свойствах стандартного реквизита период зашел в ФорматРедактирования и установил формат "yyyy", кнопку выбора поставил "нет" и кнопку регулирования "да".
Добавил ФормуСписка и в свойстве реквизита "период" установил формат "yyyy"
Спасибо всем кто помогал.
---
https://infostart.ru/public/978755/
---
функция Год() ?
---
еще как вариант, храните Год как 01.01.NNNN
т.е. НачалоГода() тогда и сравнивать с датами можно
---
А как для пользователя в форме при выборе даты сделать, чтобы выходил выбор только из годов без месяцев и чисел?
---
выпадающий список сделайте, при открытии формы заполните что-то типа

2020
2019
2018
2017

после выбора пользователем делаете дату
лкГод = Дата(ВыбранныйГод,1,1);
---
https://infostart.ru/public/978755/
---
В итоге сделал так:
В регистре сведений поставил периодичность: В пределах года, Режим записи: Независимый, добавил ресурс Сумма.
Добавил ФормуЗаписи, в свойствах стандартного реквизита период зашел в ФорматРедактирования и установил формат "yyyy", кнопку выбора поставил "нет" и кнопку регулирования "да".
Добавил ФормуСписка и в свойстве реквизита "период" установил формат "yyyy"
Спасибо всем кто помогал.
Дорогие друзья! Добрый день!

Дилемма, довольно простая, но завела в мысленный тупик!

На моем предприятии вводят ERP.

До его внедрения мы пользовались и пользуемся Бухгалтерией, Документооборотом, ЗУПом и Сбытом и сейчас ещё ERP, всего для работы в 1С у нас 200 ключей, сейчас возникла беда! У пользователей в пики работы, стало выскакивать сообщение мол нет свободных лицензий и мы думаем перед их закупкой, а как они распределяются, на одного пользователя или на одну конфигурацию?

Вариант 1: Мысль такова, что один пользователь = один комп = одна лицензия! (Так думает начальство)

Вариант 2: Я будучи начинающим программистом 1С, предполагаю, что когда пользователь открывает и Документооборот, и Бухгалтерию, пользователь "съедает" не один ключ, а два! Потому что при её запуске открывается две программы (две платформы).

Кто прав, если не кто, то где истина?

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

У вас базы серверные ? Лицензии на сервере или на компах пользователей ?
---
зы серверные ?

На серваке
---
Если пользователю работают в клиент-серверном варианте, то одна лицензия на один сеанс.
---
То есть, если пользователь открыл две конфигурации, то он открыл два сеанса и использует две лицензии?
---
в (4) всё правильно Вам ответили. Если лицензии раздаёт сервер, то один сеанс(одна запущенная база) = одна лицензия
---
А бесшовная интеграция тоже расходует две лицензии?
---
Ключи аппаратные ? Можно сделать вариант 1, запретив раздачу сервером лицензии, только HASP manager
---
Вариант подсчёта лицензий "на компьютер" или "на запуск" зависит от нескольких моментов: USB или программная лицензия, каким образом клиенты получают лицензии - от сервера 1С или от HASP LM (в случаи аппаратными ключами), в случае с программными лицензиями как они активированы - на сервере или отдельно на каждой, используется ли RDP и т.д.
Примеры:
Если используется аппаратный ключ и лицензии раздает сервер 1С, то лицензия выдаётся на каждый запуск, а если клиент получает лицензии от HASP LM, то на компьютер.
Если используется программная лицензия, при этом клиенты подключаются к серверу по RDP, то если включена раздача лицензий сервером 1С, то лицензии точно также выдаются на каждый запуск, а если нет, то на компьютер (точнее на терминальную сессию, в рамках одной сессии можно запустить несколько ИБ, используя одну лицензию).
Есть некая форма, сверху поле ввода штрих-кода. После его ввода через сканер снизу печатается штрих код.
После этого фокус слетает с печатной формы.

этот код не помогает
Элементы.ТабТекЗадание.АктивизироватьПоУмолчанию=Истина;
---
Вроде-бы правильно:

```1c
    Элементы.ТабДок1.ТекущаяОбласть=ТабДок1.Область(1,1,1,1);
```

Но если в процедуре на клиенте ТабДок1ПриИзмененииСодержимогоОбласти обратиться на сервер, то курсор ломается - оказывается в режиме выделения ячеек. Поборол, убрав все обращения на сервер.
---
//позиция в табличном документе
 ТабДок.ТекущаяОбласть = ТабДок.Область("R1C" + (Переключатель1 * День(Календ) + 8));
---
Даже не так.
Сверху никто ничего не вводит, она просто пикает по ш-к сканером и на форме он печатается, затем мышкой щелкает на любую ячейку таб поля и снова сканирует и снова печатается.
Нужно что бы убрать доп действие с щелканьем мышки

Как сделать что бы фокус не слетал.
---
формы управляемые?
самый простой вариант через запуск обработчика ожидания,
чем-то на костыль похоже, но просто и другого варианта не нашел
как работает в поле тест что-то вводите нажимаете Ентер,
поле теряет фокус ввода, а обработчик ожидания - возвращает его обратно
---
Вроде-бы правильно:

```1c
    Элементы.ТабДок1.ТекущаяОбласть=ТабДок1.Область(1,1,1,1);
```

Но если в процедуре на клиенте ТабДок1ПриИзмененииСодержимогоОбласти обратиться на сервер, то курсор ломается - оказывается в режиме выделения ячеек. Поборол, убрав все обращения на сервер.
Здравствуйте. Вопрос в следующем. Есть обработка с табличной частью, в которой, в каждой из строки формирует документ. После формирования есть вероятность, что содержание документа необходимо изменить. Как сослать в табличной части обработки , на уже созданный документ и изменить его.
Пример:
Строка: Организация, Содержание, Ссылка на будущий документ (регистратор).
Сформировали, как теперь его изменить? И если будет 10 строк, как обратиться к той которой нужно( с нужным документом) ?
---
Получаете данные строки на клиенте
ТекущаяСтрока = Элементы.НаименованиеТЧ.ТекущиеДАнные;
и передаете полученное значение ссылки на сервер и меняете документ
ДокументОбъект = Ссылка.ПолучитьОбъект() ;
---
Сформировали, как теперь его изменить?
Если в табл части у вас есть реквизит в котором вы храните ссылку на документ, то и обращайтесь по этому реквизиту.
---
Именно, по уникальному индификатору документ искать, и менять?
---
А что есть нужный документ? Если это документ на выделенной строке, то ЭлементыФормы.ТЧ.ТекущиеДАнные.СсылкаНаДокумент.ПолучитьОбъект() - если обычные формы
---
Управляемые формы
---
Получаете данные строки на клиенте
ТекущаяСтрока = Элементы.НаименованиеТЧ.ТекущиеДАнные;
и передаете полученное значение ссылки на сервер и меняете документ
ДокументОбъект = Ссылка.ПолучитьОбъект() ;
---
СсылкаНаДокумент.ПолучитьОбъект()
Добрый день,
У меня есть параметры, которые вычисляются во время выполнения отчета

Как их обновить на форме отчета?
---
будущим поколениям. (ут 11)
Оказалось дело в общей форме отчета ФормаОтчета. Если добавить отчет в Дополнительные отчеты и обработки и потом открыть отчет как внешний, то открывается версия отчета из Дополнительных. Лечится изменением имени отчета.
---
как правило, когда используют период, то сами даты не выводят, выставляют им галочку Ограничение!
Вы оперируете ТОЛЬКО Периодом!
---
я меняю даты формирования отчета (на начало/конец периода). Хотелось бы чтобы пользователь это видел
---
Отчет.КомпоновщикНастроек.ПараметрыДанных.УстановитьЗначениеПараметра

как-то так. но нет 100% уверенности что на форме обновится
---
Отчет.КомпоновщикНастроек.ПараметрыДанных.УстановитьЗначениеПараметра
на форме не обновилось
---
Вы в параметре "Период" задаете Начало и Окончание периода, поэтому эти поля уже на форму выводить не нужно.
Если хотите, чтобы пользователь видел информацию, то можно в настройках указать вывод параметров. А вывод полей - это лишнее.
---
```1c
    то можно в настройках указать вывод параметров
```

это те, что вверху табличного поля появляются при формировании отчета? тоже пустые
---
Нет,они выводятся в виде текста. Но для пользователя этого должно быть достаточно
---
не появляются
---
Попробуйте переименовать параметр "период" во что-нибудь другое. Возможно, скд определяет его как типовой параметр
---
будущим поколениям. (ут 11)
Оказалось дело в общей форме отчета ФормаОтчета. Если добавить отчет в Дополнительные отчеты и обработки и потом открыть отчет как внешний, то открывается версия отчета из Дополнительных. Лечится изменением имени отчета.