0
- 01.08.2012 - 18:27
|
Пытаюсь изучать 1С 8.2. В моем документе ПКО есть реквизит КоррСчет (счет кредита проводки), при выборе которого нужно установить типы значения для реквизитов Субконто1, Субконто2, Субконто3 (аналитика КоррСчета, тип значения "Неопределенный" или как это в восьмерке называется). В семерке это делалось просто: НазначитьТип("Субконто1",КоррСчет.ВидСубконто(1)); А как это сделать в восьмерке? | |
1
- 01.08.2012 - 18:59
| хм.. я когда у меня давным давно возник такоцй вопрос в клюшках - позырил в документе "бухсправка" как там субконто назначаются - почему бы аналогичным макаром не посмотреть как это сделано в снеговике? | |
2
- 01.08.2012 - 19:22
|
1) Первым делом, так и попытался. Но фирма 1С в типовой бухгалтерии идет другим путем. Не дает такой свободы пользователям в формировании проводок в документах. Там шагг вправо, шаг влево - расстрел. Короче, не нашел я подобного простого примера. Те что нашел, для меня пока сильно сложные. Вот например есть в док. ПриходныйКассовыйОрдер в модуле формы процедура СчетУчетаПриИзменении(). Она отправляет в глобальный модуль РаботаСДиалогами.ПриВыбореСчетаВТабличномПоле(). А там уже черт ногу сломит. Я так и не разобрался. Может посоветуете какую нибудь простую конфигурацию, в которой можно было бы смотреть примеры кода? | |
3
- 01.08.2012 - 19:31
| 2-Birmingem >Для начала раздели понятия Реквизит и ЭлеметФормы. Затем посмотри в СП какие есть свойства и методы у твоего ЭлементаФормы. И задача очень легко решится. | |
4
- 01.08.2012 - 19:51
|
Самый простой способ: Реквизит = Справочники.НужныйСправочник.ПустаяСсылка(); Если нужно ограничить типы при интерактивном заполнении реквизита, то так: МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("СправочникСсылка.Какойто Справочник")); МассивТипов.Добавить(Тип("ДокументСсылка.КакойтоДо кумент")); ЭлементыФормы.ТвойРеквизит.ОграничениеТипа = Новый ОписаниеТипов (МассивТипов); | |
5
- 07.08.2012 - 15:01
|
Наваял такой код. Оцените пожалуйста. Что то сложновато получилось. Больше чем 3 строки на семерке :) Наверняка можно улучшить, подскажите как? Для к=1 По 3 Цикл Если КоррСчет.ВидыСубконто.Количество()>=к Тогда ТипСубк = КоррСчет.ВидыСубконто[к-1].ВидСубконто.ТипЗначения; ЭлементыФормы.Найти("Субконто"+к).ВыбиратьТип = ложь; Если ТипСубк.ПривестиЗначение(ЭлементыФормы.Найти("Субк онто"+к).Значение<>ЭлементыФормы.Найти("Субконто"+ к).Значение Тогда ЭлементыФормы.Найти("Субконто"+к).Значение = ТипСубк.ПривестиЗначение(ЭлементыФормы.Найти("Субк онто"+к).Значение); КонецЕсли; Иначе ЭлементыФормы.Найти("Субконто"+к).Значение = ""; КонецЕсли; КонецЦикла; | |
6
- 07.08.2012 - 15:51
|
Для Каждого ВидСубконто Из СчетБ.ВидыСубконто Цикл СтрТЧ=Субконто.Добавить(); СтрТЧ.ВидСубконто=ВидСубконто.ВидСубконто.ТипЗначе ния.ПривестиЗначение().Метаданные().Имя; Если Найти(ВидСубконто.ВидСубконто.ТипЗначения,"Справоч ник")>0 тогда СтрТЧ.Значение=Справочники[ВидСубконто.ВидСубконто.ТипЗначения.ПривестиЗначен ие().Метаданные().Имя].ПустаяСсылка(); иначе СтрТЧ.Значение=Перечисления[ВидСубконто.ВидСубконто.ТипЗначения.ПривестиЗначен ие().Метаданные().Имя].ПустаяСсылка(); КонецЕсли; СтрТЧ.ТолькоЧтение=Истина; КонецЦикла; | |
7
- 07.08.2012 - 17:36
| 2-Birmingem > "Не дает такой свободы пользователям в формировании проводок в документах" враки. Нажми на кнопку "Дт/Кт" под полными правами (или правами ГБ) и дивись на флаг "Ручная корректировка". Только особо бухгалтерам не распространяйся :) | |
8
- 07.08.2012 - 17:39
| 6-Zurab > субконто составных типов? не, не слышал... | |
9
- 07.08.2012 - 17:43
|
5-Birmingem > Для к=1 По 3 Цикл логичнее заменить на Для Каждого (или предварительно читать максимальное значение количества субконто из метаданных) + если тип значения субконто не составной - для поля ввода ВыбиратьТип = Ложь, в противном случае выбирать тип всё же уместно | |
10
- 07.08.2012 - 21:21
| (8) :)) | |
| Интернет-форум Краснодарского края и Краснодара |