• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Правильно Выбирать Счет

  • Автор темы Дайнеко
  • Дата начала
Д

Дайнеко

Есть на форме реквизит Счет из плана счетов.
Когда выбираешь счет групповой (имеет субсчета) , 1С выдает менюшку с субсчетами.
Но группу все равно можно выбрать! Как запретить? У элемента нет св-ва "ВыборГруппИЭлементов".
Может я чего не знаю про счета?

P.S.
Есть конечно вариант ПриИзменении() проверить.
Почему-то мне не нравится. Громозко. Ибо таких объектов множество.
 
U

unknown181538

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

Если ТипЗнч(Счет) <> Тип("ПланСчетовСсылка.Хозрасчетный") Тогда
Возврат Ложь; // Неправильный тип
КонецЕсли;

Если Счет = ПланыСчетов.Хозрасчетный.ПустаяСсылка() Тогда
Возврат Истина; // Пустая ссылка может использоваться
КонецЕсли;

Если Счет.ЗапретитьИспользоватьВПроводках Тогда

Если Сообщать Тогда
Предупреждение("Счет " + СокрЛП(Счет)+" """ + Счет.Наименование + """ нельзя использовать в проводках.");
КонецЕсли;

Возврат Ложь; // Счет использовать в проводках нельзя

КонецЕсли;

Возврат Истина; // Счет можно использовать в проводках 

КонецФункции // СчетМожноИспользоватьВПроводках()


Добавлено: Да и, насколько я понимаю, в плане счетов иерархия элементов, т.е. нет никаких групп.
 
Д

Дайнеко

Уже неплохо. Но получается к каждому реквизиту Счет лепить обработку, а в ней эту Ф-ию. Чей-то перемудрила 1С - устранилась от термина "Групповой счет" и отдала на откуп глупым програмерам и криворуким бухам.
 
A

Allexei

Можно для поля счет установить галочку РежимВыбораИзСписка и передавать для каждого поля список доступных для выбора счетов. Но это еще более извращено чем в сообщении unknown181538
 
U

unknown181538

Allexei
список из сотни счетов это слишком)
 
A

Allexei

Ну так можно же этот список ограничить? Каждый документ, же , работает с определенными счетами. Хотя если честно - действительно, идея бребовая. :)
 
Д

Дайнеко

Можно для поля счет установить галочку РежимВыбораИзСписка и передавать для каждого поля список доступных для выбора счетов.
А черт его знает, может напишу процедуру, которая из всего плана счетов запихивает только разрешенные.

Я за ночь чуть обмозговал свою задачу и разложу на 2 ситуации:
1) Счет на документе, который пойдет в проводку. Это я и описал. Здесь надо категорично запретить групповые, а физически они могут вводятся.

New!
2) Счет на отчете, тут чел может выбрать любой. Но вот что раздражает. Набираю "60" (он с субсчетами). А 1С, зараза, мне выдает меню с его субсчетами. Я должен еще раз энтером клацнуть, сказать, что я не ошибся. Эту глупую мелочь можно погасить?

Не поленился, глянул на типовую. Так и ведет себя. В обработке ввода для первой ситуации (в доках) стоит
СтандартнаяОбработка = БухгалтерскийУчет.СчетМожноИспользоватьВПроводках(ВыбранноеЗначение);

Честное слово, мне нравятся новации. Но иногда появляется повод крякнуть "А вот в 7-ке это было проще".
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!