Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Периодические реквизиты нового элемента справочника...
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Talkman
Добрый день. Столкнулся вроде как с плевой задачей, но застопорился на ровном месте. Итак. Есть справочник ТМЦ. Ему починен справочник Цены. Необходимо добавить в перечень элементов справочника ТМЦ по новому подчиненному элементу справочника Цены.
Для зю = 1 по Сз.РазмерСписка() Цикл
    Если Сз.Пометка(зю) = 0  Тогда
        продолжить;
    КонецЕсли;
    Влад = Сз.ПолучитьЗначение(зю);
    Цена.ИспользоватьВладельца(Влад);
    Цена.Новый();  
    Цена.КатегорияЦены = КЦена;
    гр = гривня;
    Цена.Валюта.Установить(РабочаяДата()-1,Гр);
    Цена.Единица.Установить(РабочаяДата() - 1,глВернутьБазовуюЕдиницуТовара(Влад));  
    Цена.Наценка.Установить(РабочаяДата() - 1,кЦена.ТорговаяНаценка);
        Если ПустоеЗначение(глВернутьБазовуюЕдиницуТовара(Влад)) = 1 Тогда
          Числ = 1;
    ИначеЕсли глВернутьБазовуюЕдиницуТовара(Влад).Коэффициент = 0 Тогда
        Числ = 1;    
    Иначе
        Числ = глВернутьБазовуюЕдиницуТовара(Влад);
    КонецЕсли;
            
    Ц = Числ * Влад.УчетнаяЦена.Получить()*(100 + кЦена.ТорговаяНаценка) / 100;
    Ц = Ц * (100 + глПроцентНДС (Влад.СтавкаНДС))/100;
    Цена.Цена.Установить(РабочаяДата()-1,Ц);
    Цена.АвторДока.Установить(РабочаяДата()-1,Автор);
    Цена.Записать();  
    Состояние("Запись "+Влад);
КонецЦикла;
СЗ - список значений с єлементами справочника ТМЦ, владельце Цены. При выполнение пишет: Цена.Валюта.Установить(РабочаяДата()-1,Гр);
{C:\USERS\TALKMAN\DESKTOP\В ПРОЦЕССЕ\ГАЛЬМАКОВ.ERT(110)}: Не выбран элемент!.
Пробовал и так:
Для зю = 1 по Сз.РазмерСписка() Цикл
    Если Сз.Пометка(зю) = 0  Тогда
        продолжить;
    КонецЕсли;
    Влад = Сз.ПолучитьЗначение(зю);
    //Сообщить(Влад);
    Цена.ИспользоватьВладельца(Влад);
    Цена.Новый();  
    Цена.ИспользоватьДату(РабочаяДата());
    Цена.КатегорияЦены = КЦена;
    гр = гривня;
    Цена.Валюта= Гр;
    Цена.Единица= глВернутьБазовуюЕдиницуТовара(Влад);
        Цена.Наценка = кЦена.ТорговаяНаценка;    
    Если ПустоеЗначение(глВернутьБазовуюЕдиницуТовара(Влад)) = 1 Тогда
        Числ = 1;
    ИначеЕсли глВернутьБазовуюЕдиницуТовара(Влад).Коэффициент = 0 Тогда
        Числ = 1;    
    Иначе
        Числ = глВернутьБазовуюЕдиницуТовара(Влад);
    КонецЕсли;
    Ц = Числ * Влад.УчетнаяЦена.Получить()*(100 + кЦена.ТорговаяНаценка) / 100;
    Ц = Ц * (100 + глПроцентНДС (Влад.СтавкаНДС))/100;
        Цена.Цена = Ц;
    Цена.АвторДока = Автор;
    Цена.Записать();  
    Состояние("Запись "+Влад);
КонецЦикла;

В этом варианте, ошибки не выдает, но запись периодических реквизитов записывается на неопределенную дату. Само собой они то видны на сегодня, но непонятно когда они были установлены. Дата изменения просто стоят точки. Необходимо чтобы явно видно когда были добавлены значения в периодические реквизиты справочника Цены... Что я делаю не так?
Fynjy
Цена.ИспользоватьДату(РабочаяДата());
Вынесите выше Новый.
Talkman
Цитата(Fynjy @ 20.09.11, 15:17) необходимо зарегистрироваться для просмотра ссылки
Цена.ИспользоватьДату(РабочаяДата());
Вынесите выше Новый.

Премного благодарен. Помогло. А по поводу первого варианта комментарий не дадите? Так... на будущее...
nysysimara
Элемент справочника вначале должен быть записан, а потом можно устанавливать его периодические реквизиты.
Talkman
Цитата(nysysimara @ 20.09.11, 15:45) необходимо зарегистрироваться для просмотра ссылки
Элемент справочника вначале должен быть записан, а потом можно устанавливать его периодические реквизиты.

Очень полезное замечание. Спасибо.
Еще только что столкнулся с проблемой.

Цена.ИспользоватьДату(РабочаяДата()); 
Цена.ИспользоватьВладельца(Влад);            
Пока Цена.ПолучитьЭлемент() = 1  Цикл
    Если Строка(Цена.КатегорияЦены) = ст Тогда
        ок = 1;
            Прервать;
    КонецЕсли;
КонецЦикла;

ошибка Пока Цена.ПолучитьЭлемент() = 1 Цикл
{C:\USERS\TALKMAN\DESKTOP\В ПРОЦЕССЕ\ГАЛЬМАКОВ.ERT(174)}: Не выбран элемент!
ИспользоватьВладельца(Влад) разве не открывает выборку элементов справочника?
Flexy
Как-то так
Цитата(Talkman @ 20.09.11, 14:52) необходимо зарегистрироваться для просмотра ссылки
Цена.ИспользоватьДату(РабочаяДата()); 
Цена.ИспользоватьВладельца(Влад);            
Цена.ВыбратьЭлементы();
Пока Цена.ПолучитьЭлемент() = 1  Цикл
    Если Строка(Цена.КатегорияЦены) = ст Тогда
        ок = 1;
            Прервать;
    КонецЕсли;
КонецЦикла;
nysysimara
ИспользоватьВладельца выступает как фильтр, а выборку нужно открыть
Цена.ВыбратьЭлементы();
Talkman
Цитата(nysysimara @ 20.09.11, 16:03) необходимо зарегистрироваться для просмотра ссылки
ИспользоватьВладельца выступает как фильтр, а выборку нужно открыть
Цена.ВыбратьЭлементы();

Странно. Мой знакомый 1Сник меня уверял, что при использовании
 Спр.ИспользоватьРодителя()
автоматом создается выборка элементов справочника с заданным значением владельца. Но Ваше замечание действительно верно... Заработало. Спасибо всем за помощь, очень помогли. Flexy, дякс.
mister-x
Цитата
Спасибо всем за помощь, очень помогли. Flexy, дякс.
у нас для цього є чарівна кнопка "+Спасибо"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.