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

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

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

Оффлайн deks500

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

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

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

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

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

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


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


Оффлайн vitasw

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


Оффлайн deks500

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


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

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

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

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 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

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

Оффлайн deks500

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

Оффлайн ilnur75

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

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

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

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

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

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

Оффлайн vitasw

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


Оффлайн deks500

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

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

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

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

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

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


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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
51 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal