Имя: Пароль:
1C
1C 7.7
v7: не могу присвоить значение реквизита
,
0 Alexey_AA
 
05.08.13
09:09
всем привет!
в семерке я полный профан... есть такой код:

        док.товар=СправочникТовары.ТекущийЭлемент();
        док.Единица=СправочникТовары.ТекущийЭлемент().ЕдиницаПоУмолчанию;

первая строка отрабатывает на ура, а вторая строка не хочет
тип значения у реквизита табличной части Справочник.ЕдиницыИзмерения
ЕдиницаПоУмолчанию тот же тип значения, в отладчике СправочникТовары.ТекущийЭлемент().ЕдиницаПоУмолчанию показывает единицу, но присвсаивать не хочет к реквизиту документа :( что я делаю не так?
1 Alexey_AA
 
05.08.13
09:10
хм.... у товаров тип значение Справочник.Единица
что-то я запутался :(
2 vinogradъ
 
05.08.13
09:12
попробуй
док.Единица=СправочникТовары.ЕдиницаПоУмолчанию;
3 KishMish
 
05.08.13
09:14
текущему элементу нельзя присваивать значение.
Сделай так

Спр=СоздатьОбъект("Справочник.Какойто");
Спр.НайтиЭлемент(СправочникТовары.ТекущийЭлемент());
Спр.Реквизит=НовоеЗначение;
Спр.Записать();

Если у итебя СправочникТовары=СоздатьОбъект("Справочник.Какойто")
тогда
СправочникТовары.Реквизит=НовоеЗначение;
СправочникТовары.Записать();
4 Масянька
 
05.08.13
09:14
Если СпрНоменклатура.НайтиПоРеквизиту("АртикулПрайс", мАртикул, 1) = 1 Тогда
            // нашли - выбираем
            мНоменклатура    = СпрНоменклатура.ТекущийЭлемент();
            мЕИ                = СпрНоменклатура.БазоваяЕдиница;
        Иначе
            // не нашли - добавляем новый элемент в группу "_Необработано"
            Сообщить("Строка № " + (КонтекстДокумента.НомерСтроки + 1) + "." + РазделительСтрок +
                     "       Не найдена номенклатура с артикулом - " + мАртикул + ". Данная номенклатура будет добавлена в папку ""_Необработано"".");            
            
            СпрГруппа.НайтиПоНаименованию("_Необработано");
            СпрНоменклатура.ИспользоватьРодителя(СпрГруппа.ТекущийЭлемент());
            СпрНоменклатура.Новый();
            СпрНоменклатура.Наименование         = СокрЛП(Строка(Лист.Cells(НомерСтроки, 3).Value));
            СпрНоменклатура.ВидНоменклатуры     = Перечисление.ВидыНоменклатуры.Прочее;
            СпрНоменклатура.ПолнНаименование    = СокрЛП(Строка(Лист.Cells(НомерСтроки, 3).Value));
            СпрНоменклатура.АртикулПрайс         = мАртикул;
            СпрНоменклатура.Записать();

            // штрих-код
            КодТовараЧисло = Число(СокрЛ(Прав(СпрНоменклатура.Код, 5)));
            Для Сч = 1 По КодТовараЧисло Цикл
                ДопКод             = глДополнитьСтрокуЛ(Строка(Сч), "0", 5);
                ВремШтрихкод     = глСформироватьШтрихкод(глПрефиксВесовогоШтрихкода, ДопКод + "00000");
            КонецЦикла;
            
            // единицы измерения
            СпрЕдиницы.ИспользоватьВладельца(СпрНоменклатура.ТекущийЭлемент());
            СпрЕдиницы.Новый();
            СпрЕдиницы.ОКЕИ            = СпрОКЕИ.ТекущийЭлемент();
            СпрЕдиницы.Коэффициент    = 1;
            СпрЕдиницы.ШтрихКод        = ВремШтрихкод;
            СпрЕдиницы.Записать();
            
            СпрНоменклатура.УстановитьАтрибут("ОсновнаяЕдиница", СпрЕдиницы.ТекущийЭлемент());
            СпрНоменклатура.УстановитьАтрибут("БазоваяЕдиница", СпрЕдиницы.ТекущийЭлемент());
            СпрНоменклатура.СтавкаНДС    = Перечисление.СтавкиНДС.НДС18;
            СпрНоменклатура.СтавкаНП    = СпрСтавкаНП.ТекущийЭлемент();

            СпрНоменклатура.Записать();

            мНоменклатура    = СпрНоменклатура.ТекущийЭлемент();
            мЕИ                = СпрНоменклатура.БазоваяЕдиница;
5 Тьма
 
05.08.13
09:16
(1)В твоей любимой восьмерке есть справочники КлассификаторЕдиницИзмерения и ЕдиницыИзмерения. Не путаешься?
6 1Сергей
 
05.08.13
09:18
смотри реквизиты Справочник.Единица
7 Alexey_AA
 
05.08.13
09:39
разобрался уже.
сделал так:

        справочникЕд= СоздатьОбъект("Справочник.ЕдиницыИзмерения");
        справочникЕд.ИспользоватьВладельца(СправочникТовары.ТекущийЭлемент());
        справочникЕд.НайтиПоНаименованию( СправочникТовары.ТекущийЭлемент().ЕдиницаПоУмолчанию.Наименование);
        док.Единица=справочникЕд.ТекущийЭлемент();    



спасибо за сочувствие =)
8 Ёпрст
 
05.08.13
09:40
(7) это п..ц
9 1Сергей
 
05.08.13
09:41
да, это пипец
10 Alexey_AA
 
05.08.13
09:42
почему? :)
11 Масянька
 
05.08.13
09:45
(10) Потому что - гладиолус.....
12 oslokot
 
05.08.13
09:46
злые вы )
13 Масянька
 
05.08.13
09:47
(12) Не злые, а справедливые.
Потом  - кому-то этот придется разгребать.....
14 1Сергей
 
05.08.13
09:48
(12) ответь на 6
15 1Сергей
 
05.08.13
09:48
на (6)
16 Alexey_AA
 
05.08.13
09:52
(13) эта обработка для одного разового случая, так что вообще параллельно, и вообще я не люблю 7.7
а ежели видите неправильность, что ж не скажите что и как? или лучше сначала посмотреть что у человека ни чего не получается, потом поугорать, когда получилось, а помощи ни до, ни после решения проблемы не было. тогда смысл вашего здесь существования? конкретно в данной теме имею ввиду
17 oslokot
 
05.08.13
09:53
(15) а почему я? у меня такого справочника вообще нет
18 1Сергей
 
05.08.13
09:56
(17) пардон, попутал
19 Масянька
 
05.08.13
09:59
(16) А я не люблю 8.2. И что?
Это не значит, что можно запихнуть ногами.....
По поводу разового - процентов 99 - потом еще понадобится.

PS Лучше день потерять, зато потом за 5 минут долететь.
20 Alexey_AA
 
05.08.13
10:01
(19) за минуту отрабатывает код, и работает как надо. по делу есть что сказать?
21 1Сергей
 
05.08.13
10:02
(20) твоя ошибка не зависит от платфомы. Если ты в 8.х будешь искать по наименованию, то тоже линейкой по пальцам получишь.

И ответь на (6)
22 Alexey_AA
 
05.08.13
10:03
(21) я в 8.2 такой фигней не маюсь, если мне надо найти я пользюсь запросом
23 oslokot
 
05.08.13
10:03
(20) минута? это много :) Здесь помогут оптимизировать твой код, если ты ответишь на (6)
24 Godofsin
 
05.08.13
10:04
(21) Ой, да ладно... Использовать поиск по наименованию для разовой обработки - не страшно.
25 Alexey_AA
 
05.08.13
10:04
в (6) никак не вопрос. у вас с русским совсем туго?
26 Alexey_AA
 
05.08.13
10:06
(23) оптимизировать мне его не надо. мне надо одну нехорошую ситуцию выправить, которую уже 5 лет до меня никто даже и не пытался поправить
27 1Сергей
 
05.08.13
10:08
(26) да, ты герой.
(24) да, не страшно.До того момента, пока не наткнёшься на два элемента с одним наименованием.
28 Масянька
 
05.08.13
10:09
(26) Может не надо "ситуацию" исправлять?
29 Godofsin
 
05.08.13
10:13
(27) Ну... дерьмо случается =) По факту - редкий для меня случай. Обычно пользую поиск по наим./коду для малых справочников, в типе "организации".
30 Alexey_AA
 
05.08.13
10:14
(27) прикалываешься? две одинаковых еденицы измерения?
(28) может иногда лучше жевать чем говорить?
31 Масянька
 
05.08.13
10:16
(30) А ты открой Справочник - Единицы измерения.
32 Godofsin
 
05.08.13
10:16
(30) Ну по сути тебе 1Сергей правильно говорит.
33 Alexey_AA
 
05.08.13
10:19
(32) согласен, но этого гемора там нету
34 Alexey_AA
 
05.08.13
10:21
(31) ну ты еще раз скажи, а то вдруг кто-то не понял что ты здесь доминирующая самка
35 Масянька
 
05.08.13
10:27
(34) Проблемы с женщинами?
36 mishaPH
 
модератор
05.08.13
10:28
ЕдиницаПоУмолчанию не периодический случаем?
37 1Сергей
 
05.08.13
10:29
Пелять, я уже устал немекать.

док.Единица=СправочникТовары.ЕдиницаПоУмолчанию.Единица;
38 пипец
 
05.08.13
10:43
;)) ж жоте
ЗЫ а вы и есть за меня будете ? ага ! (с)