|
Глюк при добавлении строки табличной части копированием 1С 8.3.12 УФ | ☑ | ||
---|---|---|---|---|
0
davlen86
26.10.18
✎
14:14
|
Доброго времени суток, уважаемые форумчане! Помогите плиз кто знает.
Создал свой документ, в этом документе есть две табличные части: "ТранспортныеНакладные" и "ТоварныйСостав", в первой тч есть реквизит ID, в который устанавливается УникальныйИдентификатор, во второй тч есть реквизит ID_ТН он копируется из текущей строки первой тч при добавлении. Так вот проблема в том что после того как добавил во вторую тч новую строку, в первой тч перестает копировать строки, т.е. добавляется пустая строка и она не заходит в процедуру ТранспорнтыеНакладныеПриНачалеРедактирования. Подскажите может кто то сталкивался уже. Спасибо |
|||
1
davlen86
26.10.18
✎
14:15
|
&НаКлиенте
Процедура ТранспорнтыеНакладныеПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Если НоваяСтрока ИЛИ Копирование ИЛИ НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные.ID) Тогда Элемент.ТекущиеДанные.ID = Новый УникальныйИдентификатор; Если ЗначениеЗаполнено(Объект.Номер) Тогда Элемент.ТекущиеДанные.НомерНакладной = Объект.Номер+"/"+Формат(Элемент.ТекущиеДанные.НомерСтроки,"ЧГ=0"); КонецЕсли; Объект.СуммаДокумента = Объект.ТранспорнтыеНакладные.Итог("Сумма"); Объект.СуммаНДС = Объект.ТранспорнтыеНакладные.Итог("СуммаНДС"); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ТоварныйСоставПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Если НоваяСтрока Тогда Если Объект.ТранспорнтыеНакладные.Количество() > 0 Тогда Элемент.ТекущиеДанные.ID_ТН = Элементы.ТранспорнтыеНакладные.ТекущиеДанные.ID; Иначе Сообщить("Необходимо сначала добавить транспортную накладную."); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
2
davlen86
26.10.18
✎
14:20
|
есть еще процедура которая устанавливает отбор во второй тч при активизации строки в первой тч.
&НаКлиенте Процедура ТранспорнтыеНакладныеПриАктивизацииСтроки(Элемент) Если Элемент.ТекущиеДанные <> Неопределено И Элемент.ТекущиеДанные.ID <> ТекущиеИДСтрокиТрансНакл Тогда УстановитьОтборТоварногоСостава(Элемент.ТекущиеДанные.ID); КонецЕсли; КонецПроцедуры &НаСервере Процедура УстановитьОтборТоварногоСостава(ИД) СтруктОтбора = Новый ФиксированнаяСтруктура("ID_ТН",?(ИД="","заглушка",ИД)); Элементы.ТоварныйСостав.ОтборСтрок = СтруктОтбора; ТекущиеИДСтрокиТрансНакл = ИД; КонецПроцедуры |
|||
3
dezss
26.10.18
✎
14:22
|
Кэш продувал?
|
|||
4
asady
26.10.18
✎
14:23
|
(0) ну так проассоциируй обработчик с событием.
|
|||
5
davlen86
26.10.18
✎
14:26
|
(4) не понял. Дело в том что он ассоциирован, он работает и в него попадает, при копировании строк, но после того как добавить строку во вторую тч, он не срабатывает, при копировании и строка новая пустая.
|
|||
6
asady
26.10.18
✎
14:27
|
(5) открывай свою форму выдели элемент + правая кнопка мыши - свойства - события - ПриАктивизацииСтроки() - там есть ссылка на обработчик или пусто?
|
|||
7
dezss
26.10.18
✎
14:28
|
(2) не делай так...
не надо ПриАктивизацииСтроки делать серверных вызовов |
|||
8
dezss
26.10.18
✎
14:29
|
(7) + это ведет к абсолютно неадекватному поведению формы в некоторых случаях
|
|||
9
davlen86
26.10.18
✎
14:30
|
(7) я знаю, что не стоит, потому что получаются бесконечный цикл, чтобы этого избежать я ввел реквизит формы "ТекущиеИДСтрокиТрансНакл" и проверяю его перед тем как вызвать серверный метод. Сначала тоже не мог понять в чем дело. Если вы знаете какую то альтернативу, то поделитесь плиз
|
|||
10
davlen86
26.10.18
✎
14:31
|
(7) как тогда можно при активизации строки, установить отбор на вторую тч по ид первой тч?
|
|||
11
davlen86
26.10.18
✎
14:32
|
(6) да есть.
|
|||
12
dezss
26.10.18
✎
14:33
|
(9) Это можно делать и на клиенте, но все равно порождается серверный вызов...
|
|||
13
asady
26.10.18
✎
14:35
|
(11) а ПриНачалеРедактирования() там что?
|
|||
14
davlen86
26.10.18
✎
14:39
|
(13) все процедуры ассоциированы, трабл в том что обработчик "ТранспорнтыеНакладныеПриНачалеРедактирования" при копировании строк срабатывает, и копируется все нормально, до того момента, пока не добавишь хотя бы одну строчку во вторую тч
|
|||
15
davlen86
26.10.18
✎
14:40
|
(14) После того как добавил строчку во вторую тч, копироваться перестает, он добавляет новую строку но она пустая, и в обработчик "ТранспорнтыеНакладныеПриНачалеРедактирования" он не попадает.
|
|||
16
dezss
26.10.18
✎
14:40
|
(14) попробуй сделать на клиенте
СтруктОтбора = Новый ФиксированнаяСтруктура("ID_ТН",?(ИД="","заглушка",ИД)); Элементы.ТоварныйСостав.ОтборСтрок = СтруктОтбора; ТекущиеИДСтрокиТрансНакл = ИД; я попробовал сделать на клиенте и на сервере (как у тебя) когда на сервере, полный бред начал твориться... все создаваемые новые гуиды 00000000-0000-0000-0000-000000000000 |
|||
17
davlen86
26.10.18
✎
14:41
|
(16) ок попробую. Спасибо за совет.
|
|||
18
davlen86
26.10.18
✎
14:49
|
(16) Помогло спасибо Вам огромное!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |