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

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

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

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 30
  • КПД: 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
Просмотров: 3633
Последний ответ 20 Мар 2015, 12:58
от 1cwiki
Установка ориентации страницы "Ландшафт"

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

oleg-x
135 Сообщений
alex0402
79 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
78 Сообщений
BuhRust
26 Сообщений
AIFrame
24 Сообщений
Golickoff Golickoff
22 Сообщений
ilyay ilyay
21 Сообщений
Варвар
20 Сообщений
Kironten
19 Сообщений
Римма
18 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal