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

Автор Тема: получение значение из реквизита табличной части на сервере  (Прочитано 1661 раз)

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

Оффлайн maxipunchik

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 2
  • КПД: 11%
  • Регистрация: 2014-12-22
  • Сайт: 
  • Профессия: Программист 8.1
Приветствую товарищи знатоки. Вопрос такой. Есть документ (Реализация) с табличной частью (товары) с реквизитами наименование и количество. Появилась необходимость в событии реквизита Количество ПриИзменении получить значение этого реквизита, которое записано на сервере. Как это реализовать?


Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
Если документ записан, то через ссылку на документ.

Оффлайн maxipunchik

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 2
  • КПД: 11%
  • Регистрация: 2014-12-22
  • Сайт: 
  • Профессия: Программист 8.1
Если документ записан, то через ссылку на документ.
а как мне именно к нужной строке обратиться? Строка то не одна в тч, а текущиеданные и текущийэлемент на сервере не работают.

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
По номеру строки или через найти строки с отбором.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
в связи с чем "появилась необходимость"?
цель какая?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн maxipunchik

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 2
  • КПД: 11%
  • Регистрация: 2014-12-22
  • Сайт: 
  • Профессия: Программист 8.1
в связи с чем "появилась необходимость"?
цель какая?
Цель была сделать так, чтобы количество нельзя было вопервых поставить большее чем остаток на складе и вовторых чтобы новое значение не могло бы увести текущие остатки в минус вследствии изменения ранее проведенных документов. При этом, если такое случается, то должно выводиться сообщение об ошибке и текущее значение менялось бы на сохраненное на сервере.
Сегодня с грехом пополам сам дошел что нужно сделать, может немного коряво и длинно, но уж как смог, я пока новичок. Выкладываю код, может кому пригодится
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
НачальноеЗначение = ПолучитьНачальноеЗначениеКоличества(Объект.Ссылка,Элементы.Товары.ТекущаяСтрока);   
   ТекущийОстатокНаСкладе = ПолучениеТекущихДанныхРегистра(Элементы.Товары.ТекущиеДанные.Материал,Элементы.Товары.ТекущиеДанные.НаборСвойств,ТекущаяДата());
   ОстатокНаСкладе = ПолучениеДанныхРегистра (Элементы.Товары.ТекущиеДанные.Материал,Элементы.Товары.ТекущиеДанные.НаборСвойств,Объект.Дата);
   Если ТекущийОстатокНаСкладе - (Элементы.Товары.ТекущиеДанные.Количество - НачальноеЗначение) < 0 Тогда
         Сообщить("Ошибка введения данных, конечный остаток на складе не может быть меньше нуля");
         Элементы.Товары.ТекущиеДанные.Количество = НачальноеЗначение;
   ИначеЕсли Элементы.Товары.ТекущиеДанные.Количество > ОстатокНаСкладе Тогда
   Сообщить("На Складе осталось только "+ОстатокНаСкладе+" штук");   
   Элементы.Товары.ТекущиеДанные.Количество = ОстатокНаСкладе;
КонецЕсли;

РаботаСоСтрокамиДокумента.Сумма(Элементы.Товары.ТекущиеДанные);
КонецПроцедуры

&НаСервере
Функция ПолучитьНачальноеЗначениеКоличества(ТекДок,Индекс)
   ТабличнаяЧастьДокумента = Объект.Ссылка.Товары.Выгрузить();
   СтрокаТабЧасти = ТабличнаяЧастьДокумента.Получить(Индекс);
   НачальноеЗначение = СтрокаТабЧасти.Получить(2);
               Возврат НачальноеЗначение;
КонецФункции
&НаСервере
Функция ПолучениеДанныхРегистра (Ссылка,Ссылка2,Ссылка3)
   НужнаяДата = Ссылка3-1;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |   ОстаткиМатериаловОстаткиИОбороты.Материал,
               |   ОстаткиМатериаловОстаткиИОбороты.НаборСвойств,
               |   ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток
               |ИЗ
               |   РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты(, &Период, , , ) КАК ОстаткиМатериаловОстаткиИОбороты
               |ГДЕ
               |   ОстаткиМатериаловОстаткиИОбороты.Материал = &Материал
               |   И ОстаткиМатериаловОстаткиИОбороты.НаборСвойств = &НаборСвойств";
Запрос.УстановитьПараметр("Материал",Ссылка);
Запрос.УстановитьПараметр("НаборСвойств",Ссылка2);
Запрос.УстановитьПараметр("Период",НужнаяДата);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ОстатокНаСкладе = Выборка.КонечныйОстаток;
КонецЦикла;
Если  Не ТипЗнч(ОстатокНаСкладе) = Тип("Число") Тогда
   ОстатокНаСкладе = 0;
   КонецЕсли;
 Возврат ОстатокНаСкладе;

КонецФункции
&НаСервере
Функция ПолучениеТекущихДанныхРегистра (Ссылка,Ссылка2,Ссылка3)
  Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |   ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток
               |ИЗ
               |   РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты(, &Период, , , ) КАКОстаткиМатериаловОстаткиИОбороты
               |ГДЕ
               |   ОстаткиМатериаловОстаткиИОбороты.Материал = &Материал
               |   И ОстаткиМатериаловОстаткиИОбороты.НаборСвойств = &НаборСвойств";
Запрос.УстановитьПараметр("Материал",Ссылка);
Запрос.УстановитьПараметр("НаборСвойств",Ссылка2);
Запрос
УстановитьПараметр("Период",Ссылка3);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ОстатокНаСкладе = Выборка.КонечныйОстаток;
КонецЦикла;
Если  Не ТипЗнч(ОстатокНаСкладе) = Тип("Число") Тогда
   ОстатокНаСкладе = 0;
   КонецЕсли;
 Возврат ОстатокНаСкладе;

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

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
зачем эти выкрутасы?
зачем изобретать велосипед?

1. остатки проверяются при проведении
2. заполнение тч по остатку на складе делается через подбор

ВСЕ!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


 

Значение "00000000001" поля "Код" не уникально

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

Ответов: 4
Просмотров: 6882
Последний ответ 24 Ноя 2014, 12:21
от gigson
Значение поля "Владелец" не заполнено или заполнено неверно

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

Ответов: 1
Просмотров: 3245
Последний ответ 16 Ноя 2015, 09:36
от cska-fanat-kz
Как в СКД вычислить значение ресурса для группировки по значениям ресурса нижестоящей группировки

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

Ответов: 1
Просмотров: 975
Последний ответ 23 Ноя 2016, 12:53
от sertak
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

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

Ответов: 14
Просмотров: 8559
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz
"Уникальность" строки таблиной части документа

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

Ответов: 3
Просмотров: 1957
Последний ответ 20 Авг 2014, 12:22
от has

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
AIFrame
64 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal