[РЕШЕНО] Табличная Часть свойство Реквизита

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем sashadeo, 13 апр 2015.

  1. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте 1с 8.3 управляемы формы. В табличной части документы есть Реквизит "ВидРассчета" он имеет составной тип.(Налоги,статьи затрат, резервы.)
    Подскажите как обратиться к Типу реквизита ВидРассчета.

    Делаю так выдает ошибку...


    Для Каждого СтрокаТЧ Из Объект.ОтражениеВУчете Цикл
    Если СтрокаТЧ.ВидРасчета.СодержитТип("НалогиСборыОтчисления") тогда
    Сообщить(СтрокаТЧ.ВидРасчета);
    КонецЕсли;

    Ошибка:

    {Документ.ОтражениеЗарплатыВРеглУчете.Форма.ФормаДокумента.Форма(809)}: Метод объекта не обнаружен (СодержитТип)
    Если СтрокаТЧ.ВидРасчета.СодержитТип("НалогиСборыОтчисления") тогда
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Если ТипЗнч(СтрокаТЧ.ВидРасчета)=Тип("Нужный тип") Тогда
    sashadeo нравится это.
  3. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Спасибо все работает но теперь не могу обратиться к Плану счетов

    Код:
    &НаКлиенте
    Процедура РасчетЗп(Команда)
    
              Перем= ПланыСчетовСсылка.Типовой.НакладныеРасходы;
    
    Дает ошибку
    {Документ.ОтражениеЗарплатыВРеглУчете.Форма.ФормаДокумента.Форма(806,13)}: Переменная не определена (ПланыСчетовСсылка)
    Перем = <<?>>ПланыСчетовСсылка.Типовой.НакладныеРасходы; (Проверка: Тонкий клиент)
  4. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    в случае с тонким клиентом у вас нет доступа к менеджерам, но есть функция ПредопределенноеЗначение
    ПредопределенноеЗначение("ПланСчетов.Типовой.НакладныеРасходы")
    --- Объединение сообщений, 14 апр 2015 ---
    но даже на сервере - ПланыСчетов.Типовой.НакладныеРасходы (не ПланыСчетовСсылка)
    sashadeo нравится это.
  5. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    А если значение не предопределенное?(ПланСчетов)
    Как найти мне его по коду счета или наименованию?
    Например: Код счет 8314, Наименование "Отчисления от оплаты труда"
  6. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    таки ПланыСчетов.Типовой.НайтиПоКоду("8314") :)
    синтаксис помощник - классная штука
    sashadeo нравится это.
  7. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Юзал синтаксис)
    ПланыСчетов.Типовой.НайтиПоКоду("8314")

    У меня дескриптор &НаКлиенте

    {Документ.ОтражениеЗарплатыВРеглУчете.Форма.ФормаДокумента.Форма(808,13)}: Переменная не определена (ПланыСчетов)
    Перем1 = <<?>>ПланыСчетов.Типовой.НайтиПоКоду("8314"); (Проверка: Тонкий клиент)
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    А ничего что на клиенте только отображаются данные ? Основные вычисления должны проходить на сервере, и только потом передаваться на клиента.
  9. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    На 8.3 Работаю не давно.
    Тогда как мне реализовать такой код(Процедура Кнопки)

    Код:
        &НаКлиенте
      Процедура РасчетЗп(Команда)
        Перем1 =  ПланыСчетов.Типовой.НайтиПоКоду("8314");
    Для Каждого СтрокаТЧ Из Объект.ОтражениеВУчете Цикл              
              
    Если ТипЗнч(СтрокаТЧ.ВидРасчета)=Тип("СправочникСсылка.НалогиСборыОтчисления") Тогда          
            Сообщить(СтрокаТЧ.СчетДт);
            СтрокаТЧ.СчетДт = Перем1;
          Сообщить(СтрокаТЧ.ВидРасчета);
          КонецЕсли;
          КонецЦикла   
    КонецПроцедуры
    
    Ставлю дескриптор наСервере

    Не могу обратиться к табличной части
    Код:
    Для Каждого СтрокаТЧ Из Объект.ОтражениеВУчете Цикл   
    Не работает

    Ставлю дескриптор наКлиенте
    не работает эта часть кода
    Код:
    Перем1 =  ПланыСчетов.Типовой.НайтиПоКоду("8314");
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Весь расчет делайте на сервере, потом передавайте на клиента (серверные процедуры, вызванные с клиента автоматом возвращают вызов на клиента). Табличную часть с клиента на сервер и обратно можно перегонять через РеквизитФормыВЗначение() и ЗначениеВРеквизитФормы(). Хотя на сервере тч вполне доступна, если является реквизитом объекта.
  11. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Можно мне конкретно на моем коде сказать что нужно подправить(Без теории). Если я сделаю дескриптор НаСервере.
  12. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Без теории - значит сделать за вас, потрудитесь уж самостоятельно разрешить этот вопрос или хотя бы почитайте на эту тему.
  13. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Не хочу вступать с вами в баталии, мог бы сам решил не обращался бы. Просто прошу подсказать вас что надо поменять в плане кода(думаю 1,2 строчки не более). Если конечно знаете. Если у вас есть опыт у вас займет это не более минуты. Заранее спасибо!
  14. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Код:
    &НаКлиенте
    Процедура РасчетЗп(Команда)
    ИзменитьСчет();
    ОбновитьОтображениеДанных();
    КонецПроцедуры
    
    &НаСервере
    Процедура ИзменитьСчет()
    Перем1 = ПланыСчетов.Типовой.НайтиПоКоду("8314");
    Для Каждого СтрокаТЧ Из Объект.ОтражениеВУчете Цикл
      Если ТипЗнч(СтрокаТЧ.ВидРасчета)=Тип("СправочникСсылка.НалогиСборыОтчисления") Тогда
          //Сообщить(СтрокаТЧ.СчетДт);
          СтрокаТЧ.СчетДт = Перем1;
          //Сообщить(СтрокаТЧ.ВидРасчета);
      КонецЕсли;
    КонецЦикла
    КонецПроцедуры
    sashadeo нравится это.
  15. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Спасибо огромное! Вот так все понятно теперь буду знать как действовать в такой ситуации, низкий вам поклон

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