Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 21:58

При вводе на основании сдвигается ячейка в табличной части

Автор Елена, ***, 23 авг 2017, 06:21

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

Елена, ***

Здравствуйте!
Прошу простить мне мою малокомпетентность, но увы - приходится иногда что то делать и дилетантам)
Есть проблема с заполнением табличной части документа.
Ввожу на основании приходной накладной переоценку. В документе переоценки две колонки - старая цена и новая цена. Цены подставляются автоматически (и являются одинаковыми), но вот во втором поле - Новая цена - они идут со смещением на одну ячейку вниз. То есть в первой строке ячейка пустая, во второй строке - значение первого товара и т.д.

процедура модуля
Процедура ВводНаОсновании(ДокОснование)
Автор        = Пользователь;
ДатаДок      = РабочаяДата();     
Основание    = "Приход № " + ДокОснование.НомерДок + " от " + ДокОснование.ДатаДок;
УстановитьНовыйНомер();                                                           
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку() = 1 Цикл
Цена = Товар.ЦенаРоз.Получить(ДатаДок);
ДобавитьТоварВДокумент(ДокОснование.Товар, Цена);
КонецЦикла;
КонецПроцедуры

oleg-x

Не совсем понял что тут написано, но возможно вам надо поменять:
Пока ДокОснование.ПолучитьСтроку() = 1 Цикл
на
Пока ДокОснование.ПолучитьСтроку() = 0 Цикл
Так как в таблицах номер строк отчитывается от 0, а не от 1-ы.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

alex0402

Цитата: oleg-x от 24 авг 2017, 11:44Так как в таблицах номер строк отчитывается от 0, а не от 1-ы.

ПолучитьСтроку возвращает 1, если строка выбрана и 0, если не выбрана!!!!

Цитата: Елена, *** от 23 авг 2017, 06:21ДобавитьТоварВДокумент(ДокОснование.Товар, Цена);

что в этой процедуре?
Спасибо за Сказать спасибо

Елена, ***

alex0402,
вот
Процедура ДобавитьТоварВДокумент(Элемент, Цена) 
   Если Элемент.ПометкаУдаления() = 1 Тогда
   Сообщить("Товар " + Элемент.Наименование + " помечен на удаление.", "I");
       Возврат;
   КонецЕсли;
   // Поиск текущего товара ранее проданного
   ВыбратьСтроки();
   ФлагПоиска = 0;
   Пока ПолучитьСтроку() > 0 Цикл
     Если Товар = Элемент Тогда
ФлагПоиска = 1;
Прервать;
КонецЕсли;
   КонецЦикла;
   Если ФлагПоиска = 1 Тогда
       НоваяЦена = Цена;
   Иначе
   НоваяСтрока();
       Товар      = Элемент;
       НоваяЦена  = Цена;
   КонецЕсли;
   ПриОкончанииРедактированияСтроки();
   АктивизироватьСтроку();
КонецПроцедуры

alex0402

ну вот эту процедуру и отлаживать нужно, на первый взгляд все правильно. Можно посмотреть еще ПриОкончанииРедактированияСтроки, может там еще что-то изменяется...
Спасибо за Сказать спасибо

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск