![]() |
|
Проблема со строками тч | ☑ | ||
---|---|---|---|---|
0
fdgd98
17.12.15
✎
10:59
|
Есть документ , у него есть ТЧ, в ТЧ есть колонка "инвентарный номер" на эту колонку повесил свое событие (обработкавыбора), суть события такова: нажимаем на поле инвентарный номер, выходит список инвентарных номеров, при выборе которого, делается запрос в регистр накопления и в регистр сведений, оттуда с помощью запроса мы достаем серийный номер и номенклатуру изделия и вставляем в ТЧ . Данные в ТЧ вставляются, НО если добавить следующую строку, то предыдущая строка исчезает и вставляется ныняшняя.. Как обойти данную проблему?
&НаКлиенте Процедура ТЧНакладнаяИнвентарныйНомерОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) результат = ПоискСерийныхИНоменклатур(ВыбранноеЗначение); если результат тогда СтандартнаяОбработка = ложь; иначе СтандартнаяОбработка = истина; конецесли; КонецПроцедуры &НаСервере Функция ПоискСерийныхИноменклатур(ИнвентарныйНомер); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК НоменклатураИзРН, | ОстаткиНоменклатурыОстаткиИОбороты.СерийныйНомер КАК СерийныйНомерИзРН, | РазмещениеОборудованияСрезПоследних.Номенклатура КАК НоменклатураИзРС, | РазмещениеОборудованияСрезПоследних.СерийныйНомер КАК СерийныйНомерИзРС |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты КАК ОстаткиНоменклатурыОстаткиИОбороты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеОборудования.СрезПоследних КАК РазмещениеОборудованияСрезПоследних | ПО ОстаткиНоменклатурыОстаткиИОбороты.ИнвентарныйНомер = РазмещениеОборудованияСрезПоследних.ИнвентарныйНомер |ГДЕ | РазмещениеОборудованияСрезПоследних.ИнвентарныйНомер = &ИнвентарныйНомер"; Запрос.УстановитьПараметр("ИнвентарныйНомер", ИнвентарныйНомер); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() цикл НоменклатураИзРН = Результат.НоменклатураИзРН; СерийныйНомерИзРН = Результат.СерийныйНомерИзРН; КонецЦикла; Если НЕ НоменклатураИзРН = неопределено И НЕ СерийныйНомерИзРН.Наименование = неопределено тогда ТЗ = Новый ТаблицаЗначений(); ТЗ.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); ТЗ.Колонки.Добавить("СерийныйНомер",Новый ОписаниеТипов("СправочникСсылка.СерийныеНомера")); ТЗ.Колонки.Добавить("ИнвентарныйНомер",Новый ОписаниеТипов("СправочникСсылка.ИнвентарныеНомера")); НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.СерийныйНомер = СерийныйНомерИзРН; НоваяСтрока.Номенклатура = НоменклатураИзРН; НоваяСтрока.ИнвентарныйНомер = ИнвентарныйНомер; Объект.ТЧНакладная.Загрузить(ТЗ); ТЗ.Очистить(); возврат истина; иначе возврат ложь; конецесли; КонецФункции |
|||
1
Builder
17.12.15
✎
11:07
|
функция поиска - это ппц...
Объект.ТЧНакладная.Загрузить(ТЗ) - смотрим внимательно на описание функции. |
|||
2
fdgd98
17.12.15
✎
11:31
|
(1) предложите варианты более менее годного кода, я не против.
какие альтернативы есть? |
|||
3
Builder
17.12.15
✎
11:36
|
(2) Что еще предложить?
Альтернатива - пойти на курсы программистов 1С и научиться самому. |
|||
4
фобка
17.12.15
✎
11:41
|
(2) при изменении просто проставь и все. Текущиеданные.серийныйномер = ...
Не надо загружать тч из тз |
|||
5
фобка
17.12.15
✎
11:42
|
Ты в (1) просто перезаливаешь тч
|
|||
6
aleks_default
17.12.15
✎
11:42
|
(0)Налицо полное непонимание базовых основ программирования. Это все равно что в одном слове из 10 букв сделать 5 ошибок. Короче кол тебе ТС.
|
|||
7
Mort
17.12.15
✎
11:53
|
Накинулись, иксперты...
(0) 1. Сделай функцию НаСервереБезКонтекста, которая ищет нужные значения и возвращает их в структуре. 2. В событии ПриИзменении (не обработка выбора) вызывай эту функцию и заполняй значения в текущих данных таблицы. |
|||
8
fdgd98
17.12.15
✎
17:09
|
(7) можно подробнее
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |