Имя: Пароль:
1C
 
выполнить нажатие кнопки
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
Все выяснил!
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой