|
Проблема с загрузкой в номенклатуру | ☑ | ||
---|---|---|---|---|
0
SeeWorld
24.08.12
✎
10:04
|
Процедура Загрузка(Кнопка)
Номенклатур = Справочники.Номенклатура.СоздатьЭлемент(); Номенклатур.Наименование = "Паста"; Номенклатур.Код = "1651565"; Номенклатур.БазоваяЕдиницаИзмерения = "кг"; Номенклатур.Записать(); КонецПроцедуры Возникает такая ошибка: Перед записью в элементе справочника "Номенклатура" необходимо заполнить "базовая единица"! В чем может быть причина? |
|||
1
salvator
24.08.12
✎
10:05
|
(0) потому что Номенклатур.БазоваяЕдиницаИзмерения - это не строка ни разу
|
|||
2
Wobland
24.08.12
✎
10:05
|
в незаполненности базовой единицы. смотри в тип
|
|||
3
Лоботряс
24.08.12
✎
10:06
|
Номенклатур - это муж Номенклатуры?
|
|||
4
SeeWorld
24.08.12
✎
10:14
|
Как кодом можно реализовать установку базовой единицы?
|
|||
5
Godofsin
24.08.12
✎
10:18
|
(3) Это тур по Номенкле.
|
|||
6
salvator
24.08.12
✎
10:20
|
(4) Смотри типовые решения, если чуть-чуть подумать лень.
|
|||
7
SeeWorld
24.08.12
✎
10:24
|
я только начинаю работать в 1с 8. Хоть метод какой использовать подскажите.
|
|||
8
Maxus43
24.08.12
✎
10:25
|
Номенклатур.БазоваяЕдиницаИзмерения = Справочник.КлассификаторЕдиницИзмерения.НайтиПоКоду(<код классификатора для кг>);
|
|||
9
SeeWorld
24.08.12
✎
10:34
|
Спасибо)
|
|||
10
Maxus43
24.08.12
✎
10:35
|
следующая тема - как проставить единицу хранения остатков и единицу для отчета
|
|||
11
SeeWorld
24.08.12
✎
10:54
|
А вот если я хочу кое, что обновить в уже существующем элементе, какой мне метод использовать?
|
|||
12
Wobland
24.08.12
✎
10:55
|
(11) найти и присвоить
|
|||
13
Maxus43
24.08.12
✎
10:56
|
Номенклатур = Справочники.Номенклатура.НайтиПоКоду(кодноменклатуры).ПолучитьОбъект();\
всё, бесплатные уроки закончены. Продам СП |
|||
14
SeeWorld
28.08.12
✎
11:49
|
Номенклатура = Справочники.Номенклатура;
НайденныйКод = Номенклатура.НайтиПоКоду(ЭксКод); ЕдИзм = Справочники.ЕдиницыИзмерения; НовЭлЕдИзм = ЕдИзм.СоздатьЭлемент(); Если НайденныйКод = Номенклатура.ПустаяСсылка() тогда //Создает элемент НовЭл = Номенклатура.СоздатьЭлемент(); НовЭл.Наименование = ЭксНом; НовЭл.Код = ЭксКод; НовЭл.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); НовЭл.Записать(); //Добавление остатка в таб Ед. Измер. ОбнЭл = Номенклатура.НайтиПоКоду(ЭксКод).ПолучитьОбъект(); НовЭлЕдИзм.Владелец = ОбнЭл.Ссылка; НовЭлЕдИзм.Наименование = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); НовЭлЕдИзм.ЕдиницаПоКлассификатору = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); НовЭлЕдИзм.Коэффициент = 1; НовЭлЕдИзм.Записать(); НовЭл.ЕдиницаХраненияОстатков = //Как сослаться на запись в справочники-->единицыизмерения? НовЭл.Записать(); |
|||
15
SeeWorld
29.08.12
✎
09:15
|
Проблема решена!)
|
|||
16
SeeWorld
29.08.12
✎
09:15
|
решина
|
|||
17
Wobland
29.08.12
✎
09:16
|
(16) ришина
|
|||
18
Wobland
29.08.12
✎
09:17
|
(14) всё равно г-код
|
|||
19
SeeWorld
29.08.12
✎
09:17
|
решена
|
|||
20
SeeWorld
29.08.12
✎
09:18
|
Для начинающего вполне нормально.
|
|||
21
Wobland
29.08.12
✎
09:22
|
(20) ты по меньшей мере дважды ищешь одно и то же, плюс не всегда проверяешь найденность
|
|||
22
salvator
29.08.12
✎
09:22
|
(14) НовЭлЕдИзм = ЕдИзм.СоздатьЭлемент(); - это нафига?
|
|||
23
SeeWorld
29.08.12
✎
09:25
|
там уже этого нет. я все переправил.
|
|||
24
Web00001
29.08.12
✎
09:29
|
а вот это
ОбнЭл = Номенклатура.НайтиПоКоду(ЭксКод).ПолучитьОбъект(); НовЭлЕдИзм.Владелец = ОбнЭл.Ссылка; тоже оxyeннo найти ссылку, получить от нее объект, что бы следующей строкой, парам! от него получить ссылку, как сказали в (21) не особо разбираясь нашел ссылку или там у тебя неопределено. |
|||
25
SeeWorld
29.08.12
✎
09:40
|
Как должно правильно выглядеть?
|
|||
26
salvator
29.08.12
✎
09:40
|
(25) Кто ж тебя знает, после (23)
|
|||
27
SeeWorld
29.08.12
✎
09:42
|
Не судите меня строго!)
|
|||
28
SeeWorld
29.08.12
✎
09:42
|
Процедура Загрузка(Кнопка)
перем Номенклатур; Попытка Эксель = Новый COMОбъект("Excel.Application"); Док = Эксель.WorkBooks.Add("D:\Working\IT\игорь\Выгрузка.xls"); Исключение Сообщить(ОписаниеОшибки() + "Программа Excel не установлена на данном компьютере!"); Возврат; КонецПопытки; ВсегоСтрок = Эксель.Cells.CurrentRegion.Rows.Count; Для row = 1 По ВсегоСтрок Цикл ЭксНом = Эксель.Cells(row,1).Value; ЭксКол = Эксель.Cells(row,2).Value; ЭксЕдИзм = Эксель.Cells(row,3).Value; ЭксТранс = Эксель.Cells(row,4).Value; ЭксСум = Эксель.Cells(row,5).Value; ЭксЦен = Эксель.Cells(row,6).Value; ЭксКод = Эксель.Cells(row,7).Value; ЭксСНдс = Эксель.Cells(row,8).Value; Номенклатура = Справочники.Номенклатура; НайденныйКод = Номенклатура.НайтиПоКоду(ЭксКод); ЕдИзм = Справочники.ЕдиницыИзмерения; НовЭлЕдИзм = ЕдИзм.СоздатьЭлемент(); Если НайденныйКод = Номенклатура.ПустаяСсылка() тогда //Создает элемент НовЭл = Номенклатура.СоздатьЭлемент(); НовЭл.Наименование = ЭксНом; НовЭл.Код = ЭксКод; НовЭл.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); НовЭл.Записать(); //Добавление остатка в таб Ед. Измер. ОбнЭл = Номенклатура.НайтиПоКоду(ЭксКод).ПолучитьОбъект(); НовЭлЕдИзм.Владелец = ОбнЭл.Ссылка; НовЭлЕдИзм.Наименование = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); НовЭлЕдИзм.ЕдиницаПоКлассификатору = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); НовЭлЕдИзм.Коэффициент = 1; НовЭлЕдИзм.Записать(); НовЭл.ЕдиницаХраненияОстатков = НовЭлЕдИзм.Ссылка; НовЭл.Записать(); Иначе //Обновляет элемент //ОбнЭл = НайденныйКод.ПолучитьОбъект(); //ОбнЭл.Наименование = ЭксНом; //ОбнЭл.Код = ЭксКод; //ОбнЭл.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); //Добавление остатка в таб Ед. Измер. //ОбнЭл = Номенклатура.НайтиПоКоду(ЭксКод).ПолучитьОбъект(); //НовЭлЕдИзм.Владелец = ОбнЭл.Ссылка; //НовЭлЕдИзм.Наименование = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); //НовЭлЕдИзм.ЕдиницаПоКлассификатору = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭксЕдИзм); //НовЭлЕдИзм.Коэффициент = 1; //НовЭлЕдИзм.Записать(); //ОбнЭл.ЕдиницаХраненияОстатков = НовЭлЕдИзм.Ссылка; //ОбнЭл.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
29
Wobland
29.08.12
✎
09:43
|
(27) это ты в другом месте проси ;)
|
|||
30
Wobland
29.08.12
✎
09:44
|
>Программа Excel не установлена на данном компьютере
ситуация: ексель стоит, а файла нет. что скажет? |
|||
31
SeeWorld
29.08.12
✎
09:45
|
Ругаться будет)
|
|||
32
salvator
29.08.12
✎
09:45
|
Зачем ты создаешь новую единицу измерения еще ДО проверки?
|
|||
33
Wobland
29.08.12
✎
09:46
|
НовЭлЕдИзм.Владелец=НовЭл
|
|||
34
Wobland
29.08.12
✎
09:46
|
(33) .Ссылка
|
|||
35
Wobland
29.08.12
✎
09:46
|
(32) присоединяюсь
|
|||
36
Wobland
29.08.12
✎
09:47
|
(31) так и сообщай "1С ругается"
|
|||
37
Wobland
29.08.12
✎
09:47
|
а чтоб другой файл подсунуть, надо код править?
|
|||
38
SeeWorld
29.08.12
✎
09:49
|
Зачем ты создаешь новую единицу измерения еще ДО проверки? Чтоб не прописывать после "Тогда" и "Иначе"
|
|||
39
salvator
29.08.12
✎
09:50
|
(38) После Иначе у тебя вообще ничего нет, если че.
|
|||
40
Wobland
29.08.12
✎
09:50
|
(38) да засунь создание в условие
|
|||
41
SeeWorld
29.08.12
✎
09:51
|
Если комментарии убрать то после "иначе" будет)
|
|||
42
salvator
29.08.12
✎
09:55
|
Да и вот это
ОбнЭл = Номенклатура.НайтиПоКоду(ЭксКод).ПолучитьОбъект(); зачем, если ты уже создал новый элемент, и объект у тебя уже есть? |
|||
43
SeeWorld
29.08.12
✎
10:06
|
НовЭлЕдИзм.Владелец = НовЭл.Ссылка; Так что ли?
|
|||
44
Wobland
29.08.12
✎
10:07
|
(43) а кто-то ж говорил выше, не?
|
|||
45
SeeWorld
29.08.12
✎
10:09
|
Просто, не совсем понимаю работу ссылками, сейчас вы мне проясняете её.
|
|||
46
Wobland
29.08.12
✎
10:10
|
(45) есть адрес на конверте, а есть человек с руками, ногами и прочими свойствами
|
|||
47
SeeWorld
29.08.12
✎
10:22
|
Спасибо всем, прояснили все)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |