8.х Работа со справочниками

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Начинающий, 1 июл 2006.

  1. TopicStarter Overlay
    Начинающий
    Offline

    Начинающий

    Регистрация:
    1 июл 2006
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Как создать в справочнике возможность отбора по реквизиту?
  2. Coder1C
    Offline

    Coder1C Слуга форума Команда форума Администратор

    Регистрация:
    10 фев 2006
    Сообщения:
    506
    Симпатии:
    31
    Баллы:
    54
    Смотри файл.

    Вложения:

    • 1.gif
      1.gif
      Размер файла:
      5,3 КБ
      Просмотров:
      209
  3. emilh
    Offline

    emilh

    Регистрация:
    15 сен 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    я тоже начинающий... 2 таких вопроса, замучался уже:

    1. В табличной части есть реквизит НДС типа булево. для начала пытаюсь выяснить, значение ЛОЖЬ или ИСТИНА. как мне это сделать?

    2. Из списка налоговых ставок мне нужно найти налог под названием НДС и взять его ставку. как это сделать?

    спасибо огромное за ранее!
  4. AndrosovEvgeniy
    Offline

    AndrosovEvgeniy

    Регистрация:
    24 авг 2010
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    по поводу 2. А что за список? Что из себя представляет с т.з. структуры?
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вопрос совершенно непонятен. Берете и обращаетесь к реквизиту. Например:
    Код:
    Если НаименованиеМоегоРеквизита Тогда 
    //Чтобы было понятней: предыдущая строка могла быть написана как: "Если НаименованиеМоегоРеквизита = ИСТИНА Тогда"
    //Но если НаименованиеМоегоРеквизита имеет тип булево, в этом нет необходимости и можно писать так как написал, без сравнения
    <какие-то действия>
    Иначе
    <какие-то действия>
    КонецЕсли;
    
  6. emilh
    Offline

    emilh

    Регистрация:
    15 сен 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    это простейший список, справочник, который имеет 3 реквизита: код, наименование, ставка.
  7. emilh
    Offline

    emilh

    Регистрация:
    15 сен 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    не обессудьте. я программировал на С. а этот язык совершенно другой. Вдобавок, справка по объектам не такая богатая, как у майкрософт (по крайней мере из того, что я нашел).

    а по вопросу - вы меня правильно поняли. Тогда вот код:

    Код:
    Процедура GoodsApplyVATПриИзменении(Элемент)
    Если ApplyVAT Тогда
    //здесь я пытаюсь взять ставку НДС из справочника Налоги. Справочник Налоги содержит 
    //эелемент НДС и рядом ставку.
    Налоги = Справочники.TaxRates;
    НДС = Налоги.НайтиПоНаименованию("VAT");
    СтавкаНДС = НДС.Rate;
    
    //а тут уже непосредственно вычисдение с уже найденной ставкой НДС.
    //Все это просиходит в реквизитах табличной части объекта Документ.
    СтрокаТабличнойЧасти = Элементы.Goods.ТекущиеДанные;
    СтрокаТабличнойЧасти.VAT = СтрокаТабличнойЧасти.Amount * НДС.Rate;
    Иначе
    СтрокаТабличнойЧасти.VAT = "";
    КонецЕсли
    
    КонецПроцедуры
    
    переменные по старинке назвал английскими словами, но это дело поправимое.
    так вот, ничего не работает. вдобавок, не могу понять, когда перед процедурой надо ставить "&НаКлиенте", а когда "&НаСервере". Иногда пишет Переменная не определена, и это про объект Справочники! ставлю перед процедурой "&НаСервере", и ошибка уже не выдается...

    возможно, опять все запутанно написал, но это, мне кажется, та самая мертвая точка, после которой, если сдвинусь, все будет нормально. спасибо вам за помощь еще раз.
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну если С осилили, проблемы осилить 1С - тоже не вижу.
    (а так, между прочим в С ведь нету типа bool)

    Бррр... :) У вас платформа какая? В 8.1 - ничего ставить не надо.

    Все названия - лучше писать все на русском, когда смешиваются языки - сложно читать код.

    Далее - по коду: почему вы ищите ставку НДС в справочнике? Как правило ставка НДС, это отдельная колонка в табличном поле. Принцип такой: есть справочник Номенклатура, в этом справочнике есть реквизит "СтавкаНДС". При подборе номенклатуры соответствующая колонка в табличном поле заполняется значением этого реквизита. Ну и соответственно пересчитывается сумма, т.е. что-то вроде:
    Код:
    СтрокаТабличнойЧасти.VAT = СтрокаТабличнойЧасти.Amount * СтрокаТабличнойЧасти.СтавкаНДС;
    
  9. emilh
    Offline

    emilh

    Регистрация:
    15 сен 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    ну не знаю, как в чистом С, но в С# есть bool.

    да, с названиями согласен.

    дело в том, что я создаю конфигурацию с нуля. Создал новый справочник с налогами, поэтому ищу его именно там)

    кстати, платформа 8.2
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну С и С# - это абсолютно разные языки.. :angry:

    Платформа то 8.2. Приложение с управляемыми формами или с обычными? Если с управляемыми - то вы не в том разделе вопрос задали, да и по управляемым формам - тут я особо не помощник.
  11. emilh
    Offline

    emilh

    Регистрация:
    15 сен 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    ну не сказать, что абсолютно... просто смесь С с джава.
    было бы легче, если бы я знал, что такое управляемые формы. в любом случае, вопрос не там задал - невнимательность) все равно спасибо за потраченное время! спрошу в другом разделе.

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