Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Июл 2017, 15:33
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Установка цены в табличную часть  (Прочитано 1812 раз)

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

Оффлайн deks500

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-04
  • Сайт: 
  • Профессия: Бухгалтер
Здравствуйте, подскажите пожалуйста как обратиться к элементу табличной части(ну я думаю что в этом косяк)
функция установкаЦеныУслуги(Наименование) Экспорт

  Запрос = Новый Запрос;
 
  Запрос.Текст  = "ВЫБРАТЬ
                  | УслугиСрезПоследних.Наименование,
                  | УслугиСрезПоследних.Цена
                  |ИЗ
                  | РегистрСведений.Услуги.СрезПоследних КАК УслугиСрезПоследних
                  |ГДЕ
                  | УслугиСрезПоследних.Наименование = &Наименование" ;
 
Запрос.УстановитьПараметр("Наименование", Элементы.Услуги.ТекущиеДанные.ПолучитьЭлементы(Наименование));  
//ТекДанные = Элементы.Услуги.ТекущиеДанные;
 

Выборка = Запрос.Выполнить().Выбрать();
 
Выборка.Следующий();
 
Возврат Выборка.Цена;

//Стр = Элементы.Товары.ТекущиеДанные;
//Стр.Сумма = Стр.Цена * Стр.Количество;

КонецФункции

&НаКлиенте
Процедура УслугиНаименованиеПриИзменении(Элемент)
Стр = Элементы.Услуги.ТекущиеДанные;
Стр.Цена = установкаЦеныУслуги(Стр.Наименование);
//установкаЦеныУслуги();
КонецПроцедуры


В результате пишет, что "Текущие данные таблицы не доступны на сервере"
Вроде функция выполняется на сервере, потом передается в процедуру на клиенте, что не так?


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Запрос.УстановитьПараметр("Наименование", Элементы.Услуги.ТекущиеДанные.ПолучитьЭлементы(Наименование));


Оффлайн deks500

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-04
  • Сайт: 
  • Профессия: Бухгалтер
Запрос.УстановитьПараметр("Наименование", Элементы.Услуги.ТекущиеДанные.ПолучитьЭлементы(Наименование));


Ну я знаю что в этом))) я забыл как к табличной части обратиться, был бы это реквизит, то там без проблем(он как объект идет)
А к этому я че только не писал)))
Добавлено: 12 Авг 2016, 15:26

как там правильно переписать?)

Последний раз редактировалось: deks500; 12 Авг 2016, 15:26. Причина: Объединение сообщений

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
функция установкаЦеныУслуги(ПараметрыЗапроса)
   
      Запрос = Новый Запрос;
     
      Запрос.Текст  = "ВЫБРАТЬ
                      |    УслугиСрезПоследних.Наименование,
                      |    УслугиСрезПоследних.Цена
                      |ИЗ
                      |    РегистрСведений.Услуги.СрезПоследних(&Дата,Услуга=&Услуга) КАК УслугиСрезПоследних";
                     
    Запрос.УстановитьПараметр("Услуга", ПараметрыЗапроса.Услуга);
    Запрос.УстановитьПараметр("Дата", ПараметрыЗапроса.Дата);                 
                //ТекДанные = Элементы.Услуги.ТекущиеДанные;
                     
   
    Выборка = Запрос.Выполнить().Выбрать();
                     
    Если Выборка.Следующий() Тогда                     
        Возврат Выборка.Цена;
    Иначе
        Возврат 0;
    КонецЕсли;
   
   
   
КонецФункции

&НаКлиенте
Процедура УслугиНаименованиеПриИзменении(Элемент)
    Стр = Элементы.Услуги.ТекущиеДанные;
    Стр.Цена = установкаЦеныУслуги(Новый Структура("Дата,Услуга",Объект.Дата,Стр.Услуга));
    //установкаЦеныУслуги();
КонецПроцедуры

Оффлайн deks500

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-04
  • Сайт: 
  • Профессия: Бухгалтер
Я под себя переделал там ругается на
В запросе :
|   РегистрСведений.Услуги.СрезПоследних(Наименование=&Наименование) КАК УслугиСрезПоследних" ;

Опишу поподробнее систему.(Гостиница)
Есть документ(Квитанция) - там есть табличная часть(услуги) с полями :
Наимеование
Цена
Кол.часов
Сумма
Тоесть к примеру - Пупкин Илья со 2 номера
в табличной части
Наименование - доставка обеда с ресторана
цена - 2000
кол. часов 0
Сумма 2000

Информация о всех услугах хранится в регистре сведений услуги
измерение - наименование
ресурс - цена
К примеру :
Наименование - Уход за детьми
Цена - 500р

Тобишь кода создаю документ квитанцию, выбираю человечка
в табличной части выбираю наименование(Услуга - Уход за детьми) и автоматом должна подставиться его цена.

Код щас такой
функция установкаЦеныУслуги(ПараметрыЗапроса) Экспорт

  Запрос = Новый Запрос;
 
  Запрос.Текст  = "ВЫБРАТЬ
                  | УслугиСрезПоследних.Наименование,
                  | УслугиСрезПоследних.Цена
                  |ИЗ
                  | РегистрСведений.Услуги.СрезПоследних(Наименование=&Наименование) КАК УслугиСрезПоследних" ;
 
Запрос.УстановитьПараметр("Наименование", ПараметрыЗапроса.Наименование);  
//ТекДанные = Элементы.Услуги.ТекущиеДанные;
 

Выборка = Запрос.Выполнить().Выбрать();
 
Выборка.Следующий();
 
Возврат Выборка.Цена;

//Стр = Элементы.Товары.ТекущиеДанные;
//Стр.Сумма = Стр.Цена * Стр.Количество;

КонецФункции

&НаКлиенте
Процедура УслугиНаименованиеПриИзменении(Элемент)
Стр = Элементы.Услуги.ТекущиеДанные;
Стр.Цена = установкаЦеныУслуги(Новый Структура("Наименование", Стр.Наименование));
//установкаЦеныУслуги();
КонецПроцедуры

Добавлено: 12 Авг 2016, 16:10

Я под себя переделал там ругается на
В запросе :
|   РегистрСведений.Услуги.СрезПоследних(Наименование=&Наименование) КАК УслугиСрезПоследних" ;

Опишу поподробнее систему.(Гостиница)
Есть документ(Квитанция) - там есть табличная часть(услуги) с полями :
Наимеование
Цена
Кол.часов
Сумма
Тоесть к примеру - Пупкин Илья со 2 номера
в табличной части

Чет еще больше запутали Вы меня))
Наименование - доставка обеда с ресторана
цена - 2000
кол. часов 0
Сумма 2000

Информация о всех услугах хранится в регистре сведений услуги
измерение - наименование
ресурс - цена
К примеру :
Наименование - Уход за детьми
Цена - 500р

Тобишь кода создаю документ квитанцию, выбираю человечка
в табличной части выбираю наименование(Услуга - Уход за детьми) и автоматом должна подставиться его цена.

Код щас такой
функция установкаЦеныУслуги(ПараметрыЗапроса) Экспорт

  Запрос = Новый Запрос;
 
  Запрос.Текст  = "ВЫБРАТЬ
                  | УслугиСрезПоследних.Наименование,
                  | УслугиСрезПоследних.Цена
                  |ИЗ
                  | РегистрСведений.Услуги.СрезПоследних(Наименование=&Наименование) КАК УслугиСрезПоследних" ;
 
Запрос.УстановитьПараметр("Наименование", ПараметрыЗапроса.Наименование);  
//ТекДанные = Элементы.Услуги.ТекущиеДанные;
 

Выборка = Запрос.Выполнить().Выбрать();
 
Выборка.Следующий();
 
Возврат Выборка.Цена;

//Стр = Элементы.Товары.ТекущиеДанные;
//Стр.Сумма = Стр.Цена * Стр.Количество;

КонецФункции

&НаКлиенте
Процедура УслугиНаименованиеПриИзменении(Элемент)
Стр = Элементы.Услуги.ТекущиеДанные;
Стр.Цена = установкаЦеныУслуги(Новый Структура("Наименование", Стр.Наименование));
//установкаЦеныУслуги();
КонецПроцедуры

Добавлено: 12 Авг 2016, 16:11

Запутали меня)
Добавлено: 12 Авг 2016, 16:35

Ну вроде как дописал чутка, посмотрел через отладчик, он не видит цену, в чем косяк?)

Последний раз редактировалось: deks500; 12 Авг 2016, 16:35. Причина: Объединение сообщений

Оффлайн SGIRG

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: 27
  • КПД: 32%
  • Регистрация: 2014-03-26
  • Сайт: 
  • Профессия: Программист 8.1
"цена" ресурс или реквизит?
Нажимайте "Спасибо", так приятнее))

Оффлайн deks500

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-04
  • Сайт: 
  • Профессия: Бухгалтер
"цена" ресурс или реквизит?
ресурс

Оффлайн ilnur75

  • ***
  • Сообщений: 111
  • РЕПУТАЦИЯ: 10
  • КПД: 9%
  • Регистрация: 2016-03-13
  • Сайт: 
  • Профессия: Ученик 1С
это пример как получить актуальную цену номенклатуры и поставить её в колонку табчасти по строке с номенклатурой

в общем модуле РаботаСоСправочниками

Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт 
// Создать вспомогательный объект "Отбор".
Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
 // Получить актуальные значения ресурсов регистра.
 ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);
 Возврат ЗначенияРесурсов.Цена;
КонецФункции

в модуле формы документа

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

КонецПроцедуры

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Я под себя переделал там ругается на
...
1. Называть реквизиты как "Наименование", "Код", "Номер" - дурной тон.
2. Посмотрите внимательно на мой пример, где указано как задаются параметры виртуальной таблицы
 я:
|    РегистрСведений.Услуги.СрезПоследних(&Дата,Услуга=&Услуга) КАК УслугиСрезПоследних";
и вы
|   РегистрСведений.Услуги.СрезПоследних(Наименование=&Наименование) КАК УслугиСрезПоследних" ;


Оффлайн deks500

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-04
  • Сайт: 
  • Профессия: Бухгалтер
Выдет
{Документ.Квитанция.Форма.ФормаДокумента.Форма(134)}: Недостаточно фактических параметров
   СтрокаТабличнойЧасти.Цена = ЦенаУслуг.ЦенаУслуги(СтрокаТабличнойЧасти.Наименование);

код такой
&НаКлиенте
Процедура УслугиНаименованиеПриИзменении(Элемент)

СтрокаТабличнойЧасти = Элементы.Услуги.ТекущиеДанные;
СтрокаТабличнойЧасти.Цена = ЦенаУслуг.ЦенаУслуги(СтрокаТабличнойЧасти.Наименование);

КонецПроцедуры
и
функция ЦенаУслуги(АктуальнаяДата, ЭлементНаименование) Экспорт

 // Создать вспомогательный объект "Отбор".
 
 Отбор = Новый Структура("Наименование", ЭлементНаименование);
 
 // Получить актуальные значения ресурсов регистра.
 
 ЗначенияРесурсов = РегистрыСведений.Услуги.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;


КонецФункции


Теги:
 

Часть четвертая: переход на «1С» версии «3.0». Где в программе находятся «Параметры учета»? Алгоритм настройки кадрового учета в новой версии программы «1С»

Автор 1cwikiРаздел Зарплата и управление персоналом

Ответов: 0
Просмотров: 3426
Последний ответ 20 Мар 2015, 12:58
от 1cwiki
Установка ориентации страницы "Ландшафт"

Автор summerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 4395
Последний ответ 11 Янв 2011, 11:05
от summer
табличная часть, реквизит "сумма"

Автор otabekРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2133
Последний ответ 01 Мар 2014, 22:27
от DmitriyF
часть уплаченного НДФЛ не попадает в справку 2-ндфл

Автор КаринаСРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1473
Последний ответ 30 Янв 2015, 02:08
от MuI_I_Ika
Внешняя обработка для документа "Установка цен номенклатуры"

Автор MArrРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 3637
Последний ответ 05 Апр 2015, 08:21
от blackmoon89

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
122 Сообщений
alex0402
106 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
ilyay ilyay
50 Сообщений
Golickoff Golickoff
49 Сообщений
AIFrame
47 Сообщений
ab30ru
38 Сообщений
wise wise
36 Сообщений
Амал
32 Сообщений
Dethmontt Dethmontt
25 Сообщений

* Кто онлайн

  • Точка Гостей: 843
  • Точка Скрытых: 0
  • Точка Пользователей: 16
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal