|
УТ 11. Обработка заполнения табличной части дока | ☑ | ||
---|---|---|---|---|
0
Maлblш
13.07.11
✎
08:58
|
Доброе утро.
Помогите разобраться. Написала обработку для заполнения ТЧ документов из файла xls для УТ 11 ред. Но с табличной частью какая-то беда. Новые строки добавляются только при повторном открытии обработки заполнения %) Все делаю обычным способом: получаю объект, добавляю новую строку таб. части, записываю... и ничего не выходит( |
|||
1
Maлblш
13.07.11
✎
09:39
|
ап
|
|||
2
Maлblш
13.07.11
✎
12:41
|
sos
|
|||
3
palpetrovich
13.07.11
✎
12:42
|
код покажи
|
|||
4
palpetrovich
13.07.11
✎
12:52
|
ну лано, тогда я покажу :) ...примерно так должно быть:
Excel = новый COMОбъект("Excel.Application"); Док = Excel.Workbooks.Open(ИмяФайла); СпрНоменклатура= Справочники.Номенклатура; НовыйОбъект = Документы["РеализацияТоваровУслуг"].СоздатьДокумент(); Загрузка = Док.Worksheets(НомерЛиста).UsedRange; КоличествоСтрокЭкселе = Док.Worksheets(НомерЛиста).UsedRange.Rows.Count; Для Стр = НачСтрока По КоличествоСтрокЭкселе Цикл НоваяСтрока = НовыйОбъект.Товары.Добавить(); Наименование = Загрузка.Cells(Стр, СтолбецНаименование).Value; НайденнаяСсылка = СпрНоменклатура.НайтиПоНаименованию(Наименование, Истина); Если НайденнаяСсылка <> СпрНоменклатура.ПустаяСсылка() Тогда НоваяСтрока.Номенклатура = НайденнаяСсылка; КонецЕсли; НоваяСтрока.Количество = Загрузка.Cells(Стр, СтолбецКоличество).Value; КонецЦикла; НовыйОбъект.Записать(); |
|||
5
Maлblш
13.07.11
✎
12:53
|
Для каждого ОбъектНазначения Из ОбъектыНазначения Цикл
Док = ОбъектНазначения.Значение.ПолучитьОбъект(); Док.Товары.Очистить(); Для каждого СтрокаТаблицы Из ТабНоменклатуры Цикл Если ВариантПоиска = 0 Тогда Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", СтрокаТаблицы.Артикул); Иначе Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаТаблицы.Наим); КонецЕсли; Если Номенклатура.Пустая() Тогда Сообщить("Не найдена позиция номенклатуры " + СтрокаТаблицы.Наим + ", арт. " + СтрокаТаблицы.Артикул + " (строка № " + СтрокаТаблицы.НомСтроки + ")", СтатусСообщения.Внимание); Иначе СтрокаТовары = Док.Товары.Добавить(); СтрокаТовары.Номенклатура = Номенклатура; СтрокаТовары.Количество = Число(СтрокаТаблицы.Количество); КонецЕсли; КонецЦикла; Док.Записать(); Док.ПолучитьФорму().Обновить(); КонецЦикла; |
|||
6
Maлblш
13.07.11
✎
12:54
|
Все те же самое, только из экселя сначала в таблицу значений записываю данные.
Док.ПолучитьФорму().Обновить(); - это убрать из текста это я уже голову ломаю, что еще можно придумать... |
|||
7
Maлblш
13.07.11
✎
12:56
|
У меня внешняя подключаемая обработка заполнения. Документ уже создан.
|
|||
8
palpetrovich
13.07.11
✎
12:58
|
(7) я понял что создан, а открыт во время заполнения?
|
|||
9
Maлblш
13.07.11
✎
12:59
|
(8) Конечно открыт. Стандартный механизм подключаемых обработок заполнения (кнопка "Заполнение...")
|
|||
10
Maлblш
13.07.11
✎
13:00
|
Такое ощущение, что строки попадают в тч, но не отображаются там сразу. Если закрыть документ, а потом открыть - то все появляется.
|
|||
11
Maлblш
13.07.11
✎
13:01
|
Потому я пытаюсь уже обновлять форму, но этот метод не доступен, не спела я разобраться в управляемых формах этих дурацких(((((
Текущей работы выше крыши. |
|||
12
palpetrovich
13.07.11
✎
13:02
|
(9) ну стал-быть форма просто не обновляется ...я еще не делал так, надо попробовать
и запись лучше так навероное делать Попытка Док.Записать(); Исключение сообщить(" " + ОписаниеОшибки(), СтатусСообщения.Внимание); КонецПопытки; |
|||
13
palpetrovich
13.07.11
✎
13:05
|
еще и речь о "управляемых формах"... я только только начал с ними знакомиться :)
ну может кто-то из знающих подтянется :) |
|||
14
Maлblш
13.07.11
✎
13:05
|
(12) Да, форма не обновляется( А как еще обновить...
Не поняла мысль :) Зачем Док.Записать() помещать в попытку-исключение, она срабатывает стабильно. Запись происходит, но в форме не отображается. |
|||
15
Maлblш
13.07.11
✎
13:05
|
(13) Вот и я только-только..)
%) |
|||
16
palpetrovich
13.07.11
✎
13:14
|
(14) привычка :) ...Обжегшись на молоке, будешь дуть и на воду :)
|
|||
17
palpetrovich
13.07.11
✎
15:17
|
может это поможет:
УправляемаяФорма.ОбновитьОтображениеДанных (ManagedForm.RefreshDataRepresentation) УправляемаяФорма (ManagedForm) ОбновитьОтображениеДанных (RefreshDataRepresentation) Синтаксис: ОбновитьОтображениеДанных() Описание: В принудительном порядке обновляет содержание элементов управления. Полезен при изменении значений реквизитов формы вне формы, в тот момент, когда форма отображается на экране. Доступность: Тонкий клиент, веб-клиент, толстый клиент. |
|||
18
Sarmen
13.07.11
✎
15:57
|
А не получается так, что открыта одна версия объекта. При его программном получении и последующей записи возникает вторая версия объекта. Естественно в первой версии никаких видимых изменений не происходит. Может что-то типа этого?
|
|||
19
Sarmen
13.07.11
✎
16:03
|
Надо как-то через:
- ДанныеФормыВЗначение(<Объект>, <Тип>) А потом вернуть объект в форму: - ЗначениеВДанныеФормы(<Значение>, <Объект>) |
|||
20
Maлblш
14.07.11
✎
01:02
|
<матерные слова>.. ненавижу одинэсников за эту гребаную платформу 8.2 с тупым управляемым приложением...
Уйти что ли из 1С в какие-то другие сферы деятельности... раз и навсегда. |
|||
21
Икогнито
14.07.11
✎
01:05
|
(20) Для некоторых, новое - враг хорошего.
|
|||
22
Икогнито
14.07.11
✎
01:06
|
(20) мне сегодня сказали, что 8.2 почти ничем от 8.1 не отличается... промолчал...
|
|||
23
Maлblш
14.07.11
✎
01:27
|
Короче еще один день убит на эту задачу, а решения так и нет %)
(17) Этот метод тоже недоступен. (19) Может у меня совсем мозги сварились, я не понимаю, как юзать в данном случае эти методы :( |
|||
24
Maлblш
14.07.11
✎
01:30
|
(22) да, видно для автора этих слов английский язык почти ничем не отличается от бенгальского...
|
|||
25
Maniac
14.07.11
✎
01:47
|
Уже давно все етьс
|
|||
26
Maniac
14.07.11
✎
01:48
|
||||
27
Maniac
14.07.11
✎
01:51
|
Я тоже парился долго пока не нашел решения
|
|||
28
Maniac
14.07.11
✎
01:52
|
||||
29
Maniac
14.07.11
✎
01:53
|
Надо просто через хранилище передавать данные. в 8.2 только так.
|
|||
30
Maлblш
14.07.11
✎
09:12
|
||||
31
palpetrovich
14.07.11
✎
10:46
|
(30) спасибо что поделилась, умничка :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |