![]() |
|
работа со стандартной обработкой "загрузка данны из табличного документа" | ☑ | ||
---|---|---|---|---|
0
fdgd98
01.12.14
✎
09:37
|
Скачал данную обработку для загрузки данных в табличную часть документа. В табличной части реквизит "наименование" имеет тип "справочникссылка", так вот в этот реквизит эта обработка не записывает... изза того что тип реквизита справочникссылка. Есть у кого опыт работы с данной обработкой? Может она записывает всетаки в такие типы? Подскажите как ее настроить?
|
|||
1
Cube
01.12.14
✎
09:39
|
(0) Справку к обработке почитать не предлагать?
|
|||
2
fdgd98
01.12.14
✎
09:45
|
(1) справку не нашел
|
|||
3
fdgd98
01.12.14
✎
09:52
|
ап
|
|||
4
Cube
01.12.14
✎
09:57
|
(2) Открой обработку в режиме "Предприятие" и нажми F1 (кнопочка на клавиатуре такая, в правом верхнем углу клавиатуры ищи)
|
|||
5
Cube
01.12.14
✎
10:32
|
(4) Хм, странно, но в моей обработке тоже справки нет... :)
Видимо, её выпилили с какого-то момента... Тогда, в двух словах, для ссылочных типов необходимо на закладке "Настройка" указать алгоритм поиска элементов. |
|||
6
fdgd98
01.12.14
✎
11:32
|
(5) вообщем во вкладке ""настройка" режим загрузки выбрал вычислить ...и в выражении написал код:
Спр = Справочники.Номенклатура.СоздатьЭлемент(); Спр.Наименование = ТекстЯчейки; Спр.Записать(); объект = СсылкаИсточника.ПолучитьОбъект(); таблчасть = объект.Приходная; стр = таблчасть.Добавить(); стр.Наименование = Справочники.Номенклатура.НайтиПоНаименованию(ТекстЯчейки); объект.Записать(); |
|||
7
fdgd98
01.12.14
✎
11:32
|
Выходит такая ошибка((( в чем дело?
Ошибка при вызове метода контекста (Записать): Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)! Объект не записан: ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная.Приходная. |
|||
8
Михаил Козлов
01.12.14
✎
11:39
|
Напишите, что Вы хотите (загрузить в справочник, в ТЧ документа или в регистр сведений), и как выглядит исходный табличный документ. Обычно для установки ссылочных данных (например, номенклатура) указывают способ Искать, номер столбца и способ поиска (по коду, наименованию или реквизиту).
|
|||
9
fdgd98
01.12.14
✎
11:47
|
(8) запись в ТЧ документа в реквизит справочникссылка при этом если данные в справочнике такие не находит , то записывает в этот справочник.
|
|||
10
fdgd98
01.12.14
✎
11:47
|
(8) такое не прокатывает т.е. способ искать не подходит
|
|||
11
hhhh
01.12.14
✎
11:49
|
(10) а как же вы найдете нужную номенклатуру без поиска?
|
|||
12
Cube
01.12.14
✎
11:50
|
(7) Потому что ты не внимательно прочитал описание... Переменная "Результат" у тебя где?
|
|||
13
fdgd98
01.12.14
✎
11:53
|
(12)где то летает)шутка..не знаю, а в этой переменной что содержиться?
|
|||
14
Cube
01.12.14
✎
11:54
|
(13) Скопипастю для тебы безвозмездно:
В тексте выражения можно использовать следующие предопределенные параметры: Результат - результат вычисления (на входе - значение по умолчанию) ТекстЯчейки - текст текущей ячейки ТекстыЯчеек - массив текстов ячеек строки ТекущиеДанные - структура загруженных значений ОписаниеОшибки - описание ошибки, выводимое в примечание ячейки и в окно сообщений Встроенные функции, функции общих модулей. |
|||
15
fdgd98
01.12.14
✎
11:58
|
(14) куб, объясни где в коде ошибка((((
|
|||
16
Cube
01.12.14
✎
12:04
|
(15) Да везде - выкинь свой код и пиши как-то так:
Результат = Справочники.Номенклатура.НайтиПоНаименованию(ТекстЯчейки); Если Результат = Неопределено Тогда НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); НоваяНоменклатура.Наименование = ТекстЯчейки; НоваяНоменклатура.Записать(); Результат = НоваяНоменклатура.Ссылка; КонецЕсли; |
|||
17
Cube
01.12.14
✎
12:06
|
+(16) Писал на коленке прямо тут в поле ответа, бантики сам прилепишь...
|
|||
18
fdgd98
01.12.14
✎
13:17
|
(17) ясно, тут идет запись в справочник, но мне нужно также и в документ, как раз таки в документе и записать невозможно было из=за предыдущей ошибки
|
|||
19
Cube
01.12.14
✎
13:37
|
(18) Сегодня, вроде, не пятница, а ты уже бухой)))))
Этот (16) код исполняется для каждой строки твоего табличного документа и ищет в справочнике элемент по наименованию, а если не находит - создает его. В переменную "Результат" в любом случае попадает ссылка на элемент справчника, которая подставляется в ТЧ документа, в который ты производишь загрузку.... |
|||
20
fdgd98
01.12.14
✎
14:44
|
(19) Спасибо, точно!
|
|||
21
Михаил Козлов
01.12.14
✎
16:22
|
(20) Только не забудьте для новой номенклатуры создать единицы измерения (единица хранения остатков, как минимум).
|
|||
22
fdgd98
10.12.14
✎
10:13
|
ап
|
|||
23
fdgd98
10.12.14
✎
10:16
|
интересно работает
Результат = Справочники.Номенклатура.НайтиПоНаименованию(ТекстЯчейки); Если Результат = Неопределено Тогда НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); НоваяНоменклатура.Наименование = ТекстЯчейки; НоваяНоменклатура.Записать(); Результат = НоваяНоменклатура.Ссылка; КонецЕсли; гружу новый документ xls в этой обработке, открываю документ(куда парсятся данные из иксель) а в наименовании пусто в некоторых строках. в чем дело не пойму. |
|||
24
fdgd98
10.12.14
✎
10:22
|
т.е. если нету в справочнике, то создается номенклатура А вот если она уже есть, то хз что делать
|
|||
25
Cyberhawk
10.12.14
✎
10:25
|
(24) обновляй наименование в ветке Иначе
|
|||
26
fdgd98
10.12.14
✎
10:27
|
(25) подскажи как?
|
|||
27
Cyberhawk
10.12.14
✎
10:30
|
Если Результат = Неопределено Тогда
НоменклатураОбъект = Справочники.Номенклатура.СоздатьЭлемент(); Иначе НоменклатураОбъект = Htpekmnfn/GjkexbnmJ,]trn()$ КонецЕсли; НоменклатураОбъект.Наименование = ТекстЯчейки; НоменклатураОбъект.Записать(); Результат = НоменклатураОбъект.Ссылка; |
|||
28
Cyberhawk
10.12.14
✎
10:30
|
*Htpekmnfn/GjkexbnmJ,]trn()$ = Результат.ПолучитьОбъект();
|
|||
29
fdgd98
10.12.14
✎
10:55
|
(27) ошибка: Элемент не выбран! .. че не пойму
|
|||
30
ВРедная
10.12.14
✎
10:56
|
Результат = Неопределено
надо заменить на сравнение с пустым значением твоего типа |
|||
31
ВРедная
10.12.14
✎
10:56
|
НайтиПоНаименованию если не находит - возвращает пустое значение, а не неопределено
|
|||
32
fdgd98
10.12.14
✎
10:57
|
(30) Результат = Справочники.Номенклатура.ПустаяСсылка()
|
|||
33
fdgd98
10.12.14
✎
11:00
|
Результат = Справочники.Номенклатура.НайтиПоНаименованию(ТекстЯчейки);
Если Результат = Справочники.Номенклатура.ПустаяСсылка() Тогда НоменклатураОбъект = Справочники.Номенклатура.СоздатьЭлемент(); Иначе НоменклатураОбъект = Результат.Ссылка.ПолучитьОбъект(); КонецЕсли; НоменклатураОбъект.Наименование = ТекстЯчейки; НоменклатураОбъект.Записать(); Результат = НоменклатураОбъект.Ссылка; |
|||
34
fdgd98
10.12.14
✎
11:01
|
но также...в документе в некоторых строках в наименовании..пусто
|
|||
35
fdgd98
10.12.14
✎
11:03
|
а когда загружаю другой документ(хотя этот документ загружался и его данные уже записаны в справочнике), то все ок. В документе во всех наименованиях заполнено.
|
|||
36
fdgd98
10.12.14
✎
11:07
|
все нормально! не дообновилось похоже
|
|||
37
fdgd98
10.12.14
✎
11:07
|
последний код верен
|
|||
38
fdgd98
12.12.14
✎
16:33
|
снова трабла
как сейчас единицу измерения записать в справочник номенклатура, что то написал , но не проходит: Результат = Справочники.Номенклатура.НайтиПоНаименованию(ТекстЯчейки); Если Результат = Справочники.Номенклатура.ПустаяСсылка() Тогда НоменклатураОбъект = Справочники.Номенклатура.СоздатьЭлемент(); НоменклатураОбъект.Наименование = ТекстЯчейки; Для каждого стр из ТекстыЯчеек цикл НоменклатураОбъект.ЕдиницаИзмерения = стр.ЕдиницаИзмерения конеццикла; НоменклатураОбъект.Записать(); Иначе НоменклатураОбъект = Результат.Ссылка.ПолучитьОбъект(); КонецЕсли; Результат = НоменклатураОбъект.Ссылка; |
|||
39
fdgd98
12.12.14
✎
16:35
|
единица измерения в справочнике номенклатуре является реквизитом справочник ссылка
|
|||
40
fdgd98
12.12.14
✎
16:43
|
ап
|
|||
41
fdgd98
12.12.14
✎
16:49
|
единицу измерения т.е. в строке 3 , записал в справочник единиц измерений.
номенклатуру в строку 4 , записал в наименование в справочника номекнатуры. А теперь надо записать единицу измерения в справочник номенклатуры в реквизит единица измерения. Как это сделать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |