Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 окт 2024, 09:28

Как добраться до подчинённого справочника в 1С?

Автор mark2011, 30 июн 2011, 12:04

0 Пользователей и 2 гостей просматривают эту тему.

mark2011

sergejK74
Спасибо вам огромное за помощь! :)

mark2011

Всем доброго времени суток ещё раз.

Снова возник вопрос по ценам. Конкретная задача - нужно вытянуть для каждого товара оптовую и розничную цену. По дате или не по дате - не знаю даже.... просто нужны цифры для забивки в файл XML.

sergejK74

// глПолучитьЦену(Номенклатура, Тип, НаДату, Единица, Валюта)
//
// Параметры:
//  Номенклатура - элемент справочника Номенклатура.
//  Тип - элемент справочника ТипыЦен
//  НаДату - дата, на которую берется цена
//  Единица - элемент справочника Единицы
//  Валюта - элемент справочника Валюты
//  Курс - курс или дата курса
//  Кратность      - кратность курса
//
// Возвращаемое значение:
//  цену номенклатуры
//
// Описание:
//  Функция возвращает цену номенклатуры в указанном типе цен Тип, на дату НаДату,
//  за единицу измерения Единица, пересчитанную в валюту Валюта по курсу Курс
//
  РозничнаяЦена = глПолучитьЦену(СпрНоменклатура.ТекущийЭлемент(), Константа.РозничныйТипЦен, ТекущаяДата(), СпрНоменклатура.БазоваяЕдиница, глРубли);


Для оптовой аналогично;
Кнопочка Спасибо - слева!

mark2011

Ну во-первых спасибо огромное за помощь!
Во-вторых для розничной прокатило, а вот для оптовой... читаем:

Цитировать//  Тип                - элемент справочника ТипыЦен
Залезаем в справочник "ТипыЦен" и видим:

Цитировать
1. Рассчитывается
2. БазовыйТипЦен
3. Процент
4. Валюта
5. ЦенаВклНДС
6. ЦенаВклНП
7. ПорядокОкругления
8. Комментарий

Одновременно с этим полагаю, что если есть такая запись:

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


то вполне допустима и такая запись (по аналогии)

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


Однако, применив последнюю запись, получаем:
Цитировать
ЦенаОптовая.Значение =  глПолучитьЦену(СпрНоменклатура.ТекущийЭлемент(), Константа.ОптовыйТипЦен, ТекущаяДата(), СпрНоменклатура.БазоваяЕдиница, глРубли);
{D:\DOCUMENTS AND SETTINGS\АДМИНИСТРАТОР\РАБОЧИЙ СТОЛ\SITEEXPORT.ERT(37)}: Поле агрегатного объекта

И действительно, если в конфигураторе открыть Константы, то реквизита ОптовыйТипЦен там нет.

Внимание, вопрос! ... Бум-м-м-м-м-м-м-м-м!!!!!!..........
Кто прав, кто виноват? :)

sergejK74

Либо Заводишь константу, либо ищешь ссылку каким-то другим способом. Наверняка где-то хранится какой тип цен - оптовый.
Либо где - нибудь перед циклом пишешь говнокод
ТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
Если ТипыЦен.НайтиПоНаименованию("Оптовая") = 1 Тогда
ОптовыйТипЦен = ТипыЦен.ТекущийЭлемент();
Иначе
Предупреждение("Не найден оптовый тип цен");
Возврат;
КонецЕсли;
и вместо Константа.ОптовыйТипЦен подставляешь ОптовыйТипЦен
Кнопочка Спасибо - слева!

mark2011

Хм.... генерируется предупреждение "Не найден оптовый тип цен", но это не есть истина... могу хоть сейчас забабахать отчётик, где эти оптовые цены будут представлены.

mark2011

Да, и вполне естественно, что такое генерится, т.к. в справочнике "ТипыЦен" просто-напросто нет реквизита "Оптовая".

sergejK74

НайтиПоНаименованию("Оптовая") - в режиме предприятия посмотри как называется оптовый тип цены и впиши нужное
Кнопочка Спасибо - слева!

mark2011

Ну посмотрел, блин...

В номенклатуре там где отображаются товары, внизу есть кнопка "Справочники". В выпадающем списке выбираю "Цены". Название пишется вот так: "*Оптовые" (без кавычек). Соответственно вписываю аргументом функции НайтиПоНаименованию.. результат тот же самый.... "Не найден оптовый тип цен"..... я что-то не понимаю? или что-то делаю неправильно?

mark2011

Сейчас сделал вот так:

Если ТипыЦен.НайтиПоНаименованию("Оптовые") = 1 Тогда
    ОптовыйТипЦен = ТипыЦен.ТекущийЭлемент();
Иначе
    Предупреждение("Не найден оптовый тип цен");
    Возврат;   
КонецЕсли;

Там где оптовая цена в XML везде проставляются нули. Истина где-то рядом...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск