1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Реквизиты справочников

Тема в разделе "Базы данных и администрирование", создана пользователем Butty, 3 апр 2007.

Статус темы:
Закрыта.
  1. Butty

    Butty Гость

    Репутация:
    0
    Доброго времени суток! :)
    Сталкнулась с такой вот задачкой. :(
    В реквизитах документа выбирается счет (любой), у счета может быть субконто, которое имеет вид справочника. У некоторых справочников есть реквизит "Цена". В документе тоже есть реквизит "Цена". Необходимо, чтобы значение из реквизита документа сохранялось в реквизите справочника, если у справоника есть реквизит "Цена". Я хмуро перечисляю все справоники, которые имеют такой реквизит:
    Код:
    Тип = ВыбВид.ТипСубконто ();
    Если (Тип = "Справочник.ОС") или (Тип = "Справочник.НМА") или 
    (Тип = "Справочник.Материалы") или (Тип = "Справочник.Товары") Тогда
    Спр = СоздатьОбъект (Тип);
    Наимен = Операция.Д*цензура*.Субконто (1);
    Если Спр.НайтиЭлемент (Наимен) = 1 Тогда
    Спр.Цена.Установить (ДатаДок, Цена);
    Спр.Записать ();
    КонецЕсли;
    КонецЕсли;
    Вопрос: можно ли каким либо образом проверить наличие реквизита (в данном случае "Цена") у пролученного справочника
    (Тип = ВыбВид.ТипСубконто ())? Ведь спраовники могут добавляться и удаляться, что ж каждый раз документ править? :huh:
    Спасибо за возможные ответы. B)
     
  2. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Можно! В плане "разрешаю". Берем ЖКК (или другую литературу) и внимательно читаем раздел работы с Метаданными.
     
  3. 77dpi

    77dpi Гость

    Репутация:
    0
    для разнообразия:
    Код:
    Вид="ТМЦ";
    Для Ин=1 По Метаданные.Справочник(Вид).Реквизит() Цикл
    Периодический=0;
    Если Метаданные.Справочник(Вид).Реквизит(Ин).Идентификатор="Цена_Розн" Тогда 
    Периодический=Метаданные.Справочник(Вид).Реквизит(Ин).Периодический;
    Если Периодический=1 Тогда
    //обработать
    Сообщить(Вид+ " -das ist fantastisch."); 
    Прервать;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
     
  4. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Для: 77dpi
    А я разве что-то другое посоветовал?
     
  5. Butty

    Butty Гость

    Репутация:
    0
    Для vitfil:

    Спасибо за благословление :(

    Если бы там было... :angry:
    В главе 10 "Работа со справочниками" Описания встроенного языка 7.7 описано только как получить доступ к реквизиту, а как проверить наличие реквизита (или его отсутствие) - нет.
    Уже перечитала все вдоль и попрек - нету!

    Ну подскажите девушке кто-нибудь... :o

    Р.S. А ЖКК это что?
     
  6. 77dpi

    77dpi Гость

    Репутация:
    0
    ну уже ж 2 раза подсказали
     
  7. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    ЖКК - Желто-Красные Книги.
    Я разве говорил про главу работы со справочниками? Я сказал про работу с метаданными. 77dpi даже не поленился и примерчик вам накидал. А вообще, в ТиС есть хороший пример в процедуре глЕстьРеквизитШапки(...), например.


    Для: 77dpi
    Бог троицу любит! Двух подсказок мало!
     
  8. Butty

    Butty Гость

    Репутация:
    0
    Для 77dpi
    Спасибо. Просто когда набирала ответ вашего сообщения еще не было.


    Для vitfil:
    P.S. А ТиС что такое?
     
  9. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Для: Butty
    ТиС = Торговля и Склад. Типовая конфигурация.
     
  10. Butty

    Butty Гость

    Репутация:
    0
    Для vitfil
    Нету у меня такой :(

    Все равно ничего не понятно, 77dpi
     
  11. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Для: Butty
    Настоятельно рекомендую почитать ЖКК или обратиться к программисту - он сделает. Еще можете почитать на мисте (www.mista.ru) уроки и курс лекций. ОЧЕНЬ много вопросов отпадет.
     
  12. Butty

    Butty Гость

    Репутация:
    0
    vitfil
    Спасибо, иду читать...
     
  13. Zab

    Zab Well-Known Member

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Хошь по простому? без мудрствований? (мне, правда, сейчас скажут, что я не прав, и делаю все не так...)
    Код:
    Попытка
    НашаЦена = Справочник.Цена;
    Исключение
    // Хм... нет такого реквизита, но ведь ничего страшного;) 
    КонецПопытки;
    // А может он периодический?
    Попытка
    НашаЦена = Справочник.Цена.Получить(КакаяНитьДата);
    Исключение
    // Хм... нет такого реквизита, но ведь ничего страшного;)
    КонецПопытки;
    Агу?
     
  14. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Для: Zab
    <!--QuoteBegin-Zab+5:04:2007, 12:06 -->
    <span class="vbquote">(Zab @ 5:04:2007, 12:06 )</span><!--QuoteEBegin-->мне, правда, сейчас скажут, что я не прав, и делаю все не так...
    [snapback]61400" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Работать то оно будет, спору нет... Но дело в том, что Try крайне не рекомендуется использовать, потому как замедляет работу. Причем, не только в 1С. Оно то и предназначается для возможности отловить ошибки, которые невозможно предусмотреть. Фактически получается, что вы предлагаете каждый раз винде генерить ошибку, которую будет перехватывать и обрабатывать 1С... не комильфо.
     
  15. Zab

    Zab Well-Known Member

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Полностью с вами согласен. Но, думается мне, Butty так и сделает. :) Бо просто.
     
  16. LSH

    LSH Гость

    Репутация:
    0
    Решил внести свою лепту.
    Копипастинг и ТиС:

    Код:
    Функция глЕстьРеквизитШапки(ИмяРеквизита, ВидДокумента) Экспорт
    Если ПустоеЗначение(ИмяРеквизита) = 1 Тогда
    Возврат 0;	
    ИначеЕсли Метаданные.ОбщийРеквизитДокумента(ИмяРеквизита).Выбран() = 1 Тогда
    Возврат 1;		
    ИначеЕсли ПустоеЗначение(ВидДокумента) = 1 Тогда
    Возврат 0;	
    ИначеЕсли Метаданные.Документ(ВидДокумента).РеквизитШапки(ИмяРеквизита).Выбран() = 1 Тогда
    Возврат 1;		
    Иначе
    Возврат 0;
    КонецЕсли;	
    КонецФункции //глЕстьРеквизитШапки()
    Код:
    Функция глЕстьРеквизитМнЧ(ИмяРеквизита,ВидДокумента) Экспорт
    Перем Реквизит;	
    Если (ПустоеЗначение(ВидДокумента) = 1) ИЛИ
    (ПустоеЗначение(ИмяРеквизита) = 1) Тогда
    Возврат 0;
    КонецЕсли;
    Реквизит=Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти(ИмяРеквизита);
    Возврат Реквизит.Выбран();
    КонецФункции //глЕстьРеквизитМнЧ()
     
  17. Butty

    Butty Гость

    Репутация:
    0
    Для LSH:
    А эту функцию обязательно писать в глобальном модуле? :)
     
  18. LSH

    LSH Гость

    Репутация:
    0
    Для: Butty

    Нет. Копипастингом функций из типовых конфигураций я бы вообще советовал не заниматься, т.к. там ооочень криво написаны некоторые вещи. Данные функции к ним не относятся. Я их привел для примера.
     
  19. Butty

    Butty Гость

    Репутация:
    0
    Для LSH:
    Т.е. можно написать нечто подобное в модуле документа?
     
  20. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Для: Butty
    Можно! Разрешаю!
    Все никак не могу понять, почему вы упорно не хотите читать литературу по 1С?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей