![]() |
![]() |
![]() |
|
выполнить нажатие кнопки | ☑ | ||
---|---|---|---|---|
0
Nikrub
01.11.04
✎
09:57
|
Требуеться программно открыть форму и нажать на ОК или выполнить код записи и закрытия формы.
|
|||
1
Rovan
гуру
01.11.04
✎
10:03
|
(0) В 8.0 код процедуры ПриЗаписи() (из модуля объекта) выполняется даже при программном вызове.
|
|||
2
sunny
01.11.04
✎
10:03
|
А для чего форму открывать,если её надо программно закрыть?Можно присвоить реквизитам и без открытия формы.
пример программного проведения дока ФормированиеПриходной = Документы.Приходная.СоздатьДокумент(); ФормированиеПриходной.Контрагент = ВыборкаПоОстаткам.Поставщик; ФормированиеПриходной.Дата = НачалоМесяца(ДатаОбр); ФормированиеПриходной.УстановитьВремя(РежимАвтоВремя.Первым); ....... ФормированиеПриходной.Записать(РежимЗаписиДокумента.Проведение); |
|||
3
Nikrub
01.11.04
✎
10:15
|
Необходимо пройтись по всему справочнику и нажать на ОК. Я делаю цикл, открытия формы и не могу надовить ОК. Поробую щас способ (1)
|
|||
4
Nikrub
01.11.04
✎
13:41
|
нет, мне нужно форму открыть и ее закрыть, путем нажатия кнопки ОК
|
|||
5
Rovan
гуру
01.11.04
✎
13:49
|
(4) Если уж совсем извращенец, тогда ищи в Сети программу nncron.
ИМХО всегда сперва надо стараться обойтись штатными методами. |
|||
6
Nikrub
01.11.04
✎
14:05
|
(4)
базу забили, но потом ее доработали. И Ед. изм. не проставляеться. Требуеться открывать и закрывать, но в ручнуюю кто это будет делать??? ;) |
|||
7
Rovan
гуру
01.11.04
✎
14:07
|
(6) То, что доработали и надо запустить циклично 1 раз в отдельной обработке.
|
|||
8
Nikrub
01.11.04
✎
14:12
|
(7)
Я это и пытаюсь сделать. :) |
|||
9
Rovan
гуру
01.11.04
✎
14:20
|
(8) Давай разберемся наконец, что же доработали и почему ты думаешь, что кроме как открытием формы никак не сделать ?
|
|||
10
Nikrub
01.11.04
✎
14:37
|
(9)
Что дорабатывалось не знаю, не я. База забита. Но в док-ах не проставляеться ед. изм. и коэфф. После того как откроешь форму и нажимаешь ОК. После все работает. |
|||
11
Nikrub
01.11.04
✎
14:38
|
(9)...
Форма справочника |
|||
12
Rovan
гуру
01.11.04
✎
14:42
|
(11) Смотри и анализируй процедуру ПриОткрытии() на предмет заполнения указанных реквизитов - скопируй найденные строки (и процедуры) в отдельную обработку.
|
|||
13
Nikrub
01.11.04
✎
14:43
|
(12)
Спасибо, сейчас попробую |
|||
14
tsd
01.11.04
✎
14:50
|
а незаполнена ЕдиницаХраненияОстатков, пройдись в цикле по справочнику и заполни ее
|
|||
15
Nikrub
01.11.04
✎
15:38
|
(14)
Выдает ошибку. Нельзя ее ничего присвоить. Она кадеться относиться к "табличной части". Кажись тода ее не исправишь программно. |
|||
16
Rovan
гуру
01.11.04
✎
15:54
|
(15) Всё в твоих руках. Давай код сюда и объяснение. Счас всё будет !
|
|||
17
tsd
01.11.04
✎
15:56
|
(15) упс, уважаемый бросьте Вы это гиблое дело, самому исправлять, и вызовите специалиста
Нету у Ноенклатуры табличных частей ЕдиницаХраненияОстатков - реквизит, имеющий тип СправочникСсылка.ЕдиницыИзмерения. Справочник ЕдиницыИзмерения является подчиненным справочнику Номенклатура. |
|||
18
Nikrub
01.11.04
✎
16:01
|
(16)
Процедура КнопкаВыполнитьНажатие(Элемент) // Вставить содержимое обработчика. Ном = Справочники.Номенклатура; Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл Если НЕ Выборка.ЭтоГруппа Тогда Ном.ЕдиницаДляОтчетов = Ном.БазоваяЕдиницаИзмерения; Ном.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры Что я пытаюсь сделать: Таким образом мне ошибку записи выдает. Необходимо заполнить ЕдиницаДляОтчетов = базовой ед. |
|||
19
Rovan
гуру
01.11.04
✎
16:36
|
А так -
Если НЕ Выборка.ЭтоГруппа Тогда Объект = Выборка.ПолучитьОбъект(); Объект.ЕдиницаДляОтчетов = Объект.БазоваяЕдиницаИзмерения; Объект.Записать(); КонецЕсли; |
|||
20
Nikrub
01.11.04
✎
16:58
|
(19)
Бинго!!!!!! Спасибо |
|||
21
Nikrub
02.11.04
✎
10:33
|
Цикл работает, но вчера в конце раб. дня не проверил справочник.
Оказываеться таким образом реквизит "ЕдиницаДляОтчетов" не заполняется. Вопрос остается открытым! |
|||
22
tsd
02.11.04
✎
11:48
|
(21) а ты можешь посмотреть какие типы значения имеют реквизиты?
БазоваяЕдиницаИзмерения - СправочникСсылка.КлассификаторЕдиницИзмерения ЕдиницаХраненияОстатков - СправочникСсылка.ЕдиницыИзмерения ЕдиницаДляОтчетов - СправочникСсылка.ЕдиницыИзмерения разницу чувствуешь? А еще в справочнике ЕдиницыИзмерения есть реквизит ЕдиницаПоКлассификатору В документы подставляестя ЕдиницаХраненияОстатков, а не ЕдиницаДляОтчетов |
|||
23
Nikrub
02.11.04
✎
13:08
|
(22)
Согласен. Но ЕдиницаХраненияОстатков у меня заполнена. Но в справочнике в колонке не отображаеться. А если открыть позицию и нажать ОК, то появляется и затем в документе все есть. Так пытаюсь циклом пройтись п всему справочнику, но не выходит у меня. |
|||
24
Rovan
гуру
02.11.04
✎
13:25
|
(23) "ЕдиницаХраненияОстатков у меня заполнена. Но в справочнике в колонке не отображаеться" Это как это ? Может у тебя колонка и реквизит не в прямой зависимости ? Проверь данные и формулу колонки!
|
|||
25
Nikrub
02.11.04
✎
13:37
|
(24)
в зависимости! Но только заополняется она после нажатия окей после повторного открытия. Релиз может обновить?! У меня 10.1.7 |
|||
26
tsd
02.11.04
✎
13:44
|
(23) ну не заполнена она у тебя. При открытии формы, если ЕдиницаХраненияОстатков не заполнена, подставляется базоваяЕдиница. Если элемент не запишешь, то ничего и не произойдет :))
Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл Если НЕ Выборка.ЭтоГруппа Тогда ЕдИзм = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); едИзм.ЕдиницаПоКлассификатору = Выборка.БазоваяЕдиницаИзмерения; едИзм.Коэффициент = 1; едИзм.Наименование = БазоваяЕдиницаИзмерения.Наименование; едизм.Владелец = Выборка.Ссылка; едИзм.Записать(); Объект = Выборка.ПолучитьОбъект(); Объект.ЕдиницаДляОтчетов = едИзм.ССылка; ОБъект.ЕдиницаХраненияОстатков = едИзм.Ссылка; Объект.Записать(); КонецЕсли КонецЦикла; |
|||
27
Nikrub
02.11.04
✎
14:47
|
Процедура нажатия кнопки одна. А как в нее вставить различие между какой кнопкой выполнить действие???
|
|||
28
Nikrub
02.11.04
✎
14:53
|
Все выяснил!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |