Имя: Пароль:
1C
1C 7.7
v7: назначитьТип() не работает в форме обработки
0 jah1111
 
13.09.23
17:17
Дано:
реквизит формы видПлатежа типа "Справочник.ВидыОпераций"
рекизит формы субконтоПлатежа типа "Неопределенный"
ну я в процедуре стараюсь назначить реквизиту "субконтоПлатежа" назначить тип в зависимости от значения реквизита "ВидыОпераций"

так вот, в модуле формы ДОКУМЕНТА такая строка работает:

назначитьТип("субконтоПлатежа",видПлатежа.Счет.ВидСубконто(1));

а в форме ОБРАБОТКИ проверка матерится  -

назначитьТип<<?>>("субконтоПлатежа",видПлатежа.Счет.ВидСубконто(1));
{Обработка.ПрихОрдер.Форма.Модуль(9)}: Процедура не обнаружена (назначитьТип)
При проверке модуля обнаружены синтаксические ошибки!

почему форма обработки не понимает назначитьТип() ?
1 azernot
 
13.09.23
18:04
(0) Потому что это не метод глобального контекста. Это метод справочника, документа, регистра и т.п.

Используйте
ПриНачалеВыбораЗначения(ИдентЭлемДиалога, ФлагСтанд06р)
Если ИдентЭлемДиалога = "субконтоПлатежа" Тогда
  Если ВидыОпераций = ... Тогда
   //Тут организовать выбор нужных данных, нужного типа-вида...
2 jah1111
 
13.09.23
18:19
а как, собственно организовать?
как назначить тип реквизиту типа "Неопределенный", какой метод использовать?
3 mikecool
 
13.09.23
18:33
(2) попробуй присвоить пустое значение нужного типа
4 azernot
 
13.09.23
18:43
(3) Не, в 1С 7.7 это не работало...

(2) Чесгря не помню. Хоть убей. И 1с 7.7 под рукой нету... Но я точно что-то такое делал.
5 azernot
 
13.09.23
18:47
Так погоди! Любой отчёт из 1С:бухгалтерия можно же сохранить как внешний и он будет работать. А там 100% есть выбор счета и определение по этому счёту типа для реквизитов вида Субонто1, Субконто2, Субконто3 где можно настраивать отборы.
6 jah1111
 
13.09.23
19:03
субконтоПлатежа.УстановитьТип()?
7 jah1111
 
13.09.23
22:06
все, разобрался
кому интересно
8 jah1111
 
13.09.23
22:09
(7) Форма.субконтоПлатежа.НазначитьТип(видПлатежа.Счет.ВидСубконто(1)); - так работает

но иногда поражает что одни и те же методы в разных формах имеют совершенно разный синтаксис
9 Злопчинский
 
14.09.23
00:22
НазначитьТип(<?>,,);
Синтаксис:
НазначитьТип(<ИмяТипа>,<Длина>,<Точность>)
Назначение:
Назначить тип для элемента диалога, которому в конфигураторе назначен тип 'Неопределенный'.
Параметры:
<ИмяТипа> - строковое выражение - название типа данных, которое назначается элементу диалога. Например, 'Строка', 'Число', 'Справочник.Товары', 'Документ.РасходнаяНакладная' и т.п.
<Длина> - необязательный параметр. Числовое выражение - длина поля представления числа. Имеет смысл только при задании числового типа.
<Точность> - необязательный параметр. Числовое выражение - число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Замечание:
Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.
Подробнее см. в документации, глава 'Атрибуты и методы контекста Модуля формы'
10 Злопчинский
 
14.09.23
00:24
Если что-то не получается - сразу бежим в СП и делаем Поиск интересующего. НазначитьТип - находится в куче веток СП, одна из них по Форме.. ну дальше - понятно...
;-)
11 Злопчинский
 
14.09.23
00:25
(8) Поражает типа то, что у ТЗ - КоличествоСтрок(), а у СЗ - РазмерСписка()...
12 jah1111
 
14.09.23
12:57
хорошо... а как ПОЛУЧИТЬ тип реквизита на форме?
13 jah1111
 
14.09.23
13:20
(12)         ТипВид=ТипЗначенияСтр(субконтоПлатежа)+?(ТипЗначения(субконтоПлатежа)%14 > 3, "."+субконтоПлатежа.Вид(), "");

сам спросил, сам ответил

но ребусы конечно те еще в семерке
14 Arbuz
 
14.09.23
17:03
(13) Гы-гы-гы. Ты попробуй найти метод ЗаполнитьПоАлгоритму() у ИТЗ.
15 MWWRuza
 
14.09.23
19:54
Ну, для начала надо саму ИТЗ найти. Это далеко не типовой объект из состава движка 7.7...
16 Злопчинский
 
15.09.23
04:26
(13) какие ребусы? Да, чего-то в клюшках не хватает, но на то они и клюшки. Простая и понятная. Легкоусваиваемая... Это вы там в снеговика привыкли какие-то ребусы постоянно решать - вам всё и кажется ребусами везде...
17 Arbuz
 
15.09.23
14:22
(15) Я старушку семёрку без этих (1срр, формекс, скулайт и ещё по-вкусу) костылей уже не представляю ))
18 MWWRuza
 
15.09.23
14:54
(17) Это да... Если грамотно их использовать, то от восьмерки не далеко.
С масштабируемостью, конечно хуже, но, для небольших(в разумных пределах) баз - хватает.
Зато проще, менее требовательно к железу(отсюда быстрее, во всяком случае по интерфейсным заморочкам), и наработок куча.
Но, судя по вопросам ТС, ему пока не до этих костылей...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший