|
Простановка родителя в справочнике Номенклатура | ☑ | ||
---|---|---|---|---|
0
Саша80
13.12.12
✎
07:47
|
Ситауция- есь файл Эксель, сотосит из двух колонок. Первая-группа справочника, вторая-элемент справочника. СО второй колонки подгрузил элементы в справочник, потом руками создал группы справочника на основании колонки 1. Пытаюсь програмно проставить родителя в элементах справочника, половина проставляется половина нет. в чем может быть дело?
сч=0; Ексель = Новый COMОбъект("Excel.Application") ; ФайлЕксель = Ексель.Workbooks.Open(ПутьКФайлу); Для н = НомерСтрокиНачало По НомерСтрокиКонец Цикл Родит= Ексель.Sheets(НомерЛиста).Cells(н,1).Value; Наим = Ексель.Sheets(НомерЛиста).Cells(н,2).Value; сп=справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Наим)).ПолучитьОбъект(); Если сп.Родитель.Пустая() тогда сп.Родитель=Справочники.Номенклатура.НайтиПоНаименованию(Родит,истина); сп.Записать(); КонецЕсли; КОнецЦИкла; Ексель.Application.Quit(); |
|||
1
shuhard
13.12.12
✎
07:48
|
(0) копрокод
|
|||
2
Саша80
13.12.12
✎
07:50
|
чего?
|
|||
3
Галахад
гуру
13.12.12
✎
07:51
|
(0) Ответ очевиден, дело в том что не находят.
|
|||
4
Sammo
13.12.12
✎
07:52
|
Точно находит? Смотри возвращаемое значение НайтиПоНаименованию, если не нашел - что будет происходить?
|
|||
5
Саша80
13.12.12
✎
07:56
|
хм..сейчас проверю...
|
|||
6
perec1982
13.12.12
✎
08:01
|
Ответ очевиден. Учитесь пользоваться обработкой "ЗагрузкаДанныхИзТабличногоДокумента.epf"
|
|||
7
perec1982
13.12.12
✎
08:02
|
Она сделает Все очень красиво, при правильном ее использовании.
|
|||
8
Саша80
13.12.12
✎
08:10
|
проверяю вот так
Ексель = Новый COMОбъект("Excel.Application") ; ФайлЕксель = Ексель.Workbooks.Open(ПутьКФайлу); Для н = НомерСтрокиНачало По НомерСтрокиКонец Цикл Родит= Ексель.Sheets(НомерЛиста).Cells(н,1).Value; Наим = Ексель.Sheets(НомерЛиста).Cells(н,2).Value; НаимИзм = Ексель.Sheets(НомерЛиста).Cells(н,3).Value; сп=справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Наим)).ПолучитьОбъект(); сп.Родитель=Справочники.Номенклатура.НайтиПоНаименованию(Родит,истина); //сп.ЕдиницаХраненияОстатков=справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(НаимИзм); //сп.ЕдиницаДляОтчетов=справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(НаимИзм); Сообщить(""+сч+"/"+сп+"/"+Наим+"/"+Родит+"/"+сп.Родитель.Наименование); сп.Записать(); сч=сч+1; ЭлементыФормы.Надпись10.Заголовок=сч; КОнецЦИкла; Ексель.Application.Quit(); все нормально все находит |
|||
9
Галахад
гуру
13.12.12
✎
08:14
|
Если Справочники.Номенклатура.НайтиПоНаименованию(Родит,истина) = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Нифига не нашел"); КонецЕсли; |
|||
10
Саша80
13.12.12
✎
08:53
|
нет, обработка обработала но результат тот же...
|
|||
11
Саша80
13.12.12
✎
08:55
|
(9)-вижу...спасибо сейчас подправлю
|
|||
12
Саша80
13.12.12
✎
09:05
|
нет, все равно.....не находит почему то
|
|||
13
Галахад
гуру
13.12.12
✎
09:06
|
Так находит или не находит?
|
|||
14
salvator
13.12.12
✎
09:08
|
Я б еще СокрЛП() использовал. Так, на всякий случай...
|
|||
15
Serg_1960
13.12.12
✎
09:09
|
Сорри, но озыученные алгоритмы - плохие алгоритмы. Не надо так писать :( Во-первых - нет проверки результата поиска по наименованию. Во-вторых - не понятно что делать, если найдено наименование, но родитель - другой.
В третьих: это неправильно, если в справочнике есть позиции с одинаковым наименованием. И далее: изменением родителя у найденной позиции - тоже вызывает вопросы. Короче - см.(1) |
|||
16
Саша80
13.12.12
✎
09:20
|
(15)-хм...может ты и прав, нужно при загрузке проверять наличие такого же наименования...сейчас попробую
|
|||
17
salvator
13.12.12
✎
09:28
|
(16) А по коду искать, не?
|
|||
18
Саша80
13.12.12
✎
09:30
|
блин...точно)))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |