Помогите разобраться
30.11.2006
12:32
#1
"Люди вопрос прост до безобразия, но я ничего не могу понять. Я обновил релиз 7.7. Какой стоял до этого не знаю.
На форме есть ТЗ (Заявка) с несколькими строками.
Заявка.ВыбратьСтроки();
Пока Заявка.ПолучитьСтроку()=1 Цикл
Если Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э)<>0 Тогда
Тзн.НоваяСтрока();
Тзн.ГП=Заявка.Товар;
Тзн.Количество=Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э);
КонецЕсли;
КонецЦикла;
Сейчас Заявка.ТекущаяСтрока() ВОЗВРАЩАЕТ ВСЕГДА 1.
И вроде так и должно быть, т.к. курсор стоит на первой строке в диалоге.
НО Товарищи бухгалтера божатся , что документ работал, т.е Заявка.ТекущаяСтрока() ДОЛЖЕН ВОЗВРАЩАтЬ номер строки в выборке.
Я так понимаю что в данном случае номер строки надо получать по-другому: типа Заявка.НомерСтроки либо через счетчик. Но таких мест в конфе море и что все переписывать? Как все-таки оно работало раньше до обновления релиза?
Поясните плиз."
На форме есть ТЗ (Заявка) с несколькими строками.
Заявка.ВыбратьСтроки();
Пока Заявка.ПолучитьСтроку()=1 Цикл
Если Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э)<>0 Тогда
Тзн.НоваяСтрока();
Тзн.ГП=Заявка.Товар;
Тзн.Количество=Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э);
КонецЕсли;
КонецЦикла;
Сейчас Заявка.ТекущаяСтрока() ВОЗВРАЩАЕТ ВСЕГДА 1.
И вроде так и должно быть, т.к. курсор стоит на первой строке в диалоге.
НО Товарищи бухгалтера божатся , что документ работал, т.е Заявка.ТекущаяСтрока() ДОЛЖЕН ВОЗВРАЩАтЬ номер строки в выборке.
Я так понимаю что в данном случае номер строки надо получать по-другому: типа Заявка.НомерСтроки либо через счетчик. Но таких мест в конфе море и что все переписывать? Как все-таки оно работало раньше до обновления релиза?
Поясните плиз."
30.11.2006
12:49
#2
Надеесь сохранили перед обновлением? Если да , то надо смотреть в старой конфе
также желательно показать весь код, а то непонятно где перебор строк в ТЗ!
также желательно показать весь код, а то непонятно где перебор строк в ТЗ!
30.11.2006
13:17
#3
Во-первых, может легче проверять заявка.имя_реквизита <> 0
Во-вторых, Стоит попробовать ПустоеЗначение(Заявка....) = 0
В третьих, проверить, чему равно 'э'
Если посмотреть описание, то для "ТекущаяСтрока()" написано:
"Установить/определить текущую строку
таблицы в элементе диалога типа ''ТаблицаЗначений''. "
Стоит обратить внимание на слова "элементе диалога".
Может вначале выгрузить в другую ТЗ и там уже делать что хочется?
Во-вторых, Стоит попробовать ПустоеЗначение(Заявка....) = 0
В третьих, проверить, чему равно 'э'
Если посмотреть описание, то для "ТекущаяСтрока()" написано:
"Установить/определить текущую строку
таблицы в элементе диалога типа ''ТаблицаЗначений''. "
Стоит обратить внимание на слова "элементе диалога".
Может вначале выгрузить в другую ТЗ и там уже делать что хочется?
30.11.2006
14:23
#4
Народ!
Конфу я вообще не трогал, конфа не моя.
Я лишь обновил саму 7-ку, т.к. не подключалась моя база, выдавала какую-то ошибку.
После этого перестал работать документ в их базе, вернее
метод Заявка.ТекущаяСтрока() в переборе стал всегда возвращать номер строки на которой до нажатия кнопки
находился курсор и в принципе это правильно. Но по замыслу я так понял,что он должен возвратить номер текущей строки в переборе.
Но как тогда это все работало раньше. Может до какого-то релиза это и было так?
Конфу я вообще не трогал, конфа не моя.
Я лишь обновил саму 7-ку, т.к. не подключалась моя база, выдавала какую-то ошибку.
После этого перестал работать документ в их базе, вернее
метод Заявка.ТекущаяСтрока() в переборе стал всегда возвращать номер строки на которой до нажатия кнопки
находился курсор и в принципе это правильно. Но по замыслу я так понял,что он должен возвратить номер текущей строки в переборе.
Но как тогда это все работало раньше. Может до какого-то релиза это и было так?
30.11.2006
15:01
#6
"Полный текст:
Перем э,н;
Колонки="1,"+СокрЛП(э);
Заявка.ТекущаяКолонка(,э);
Заявка.ПолучитьПараметрыКолонки(э,,,,н);
Тзн=СоздатьОбъект("ТаблицаЗначений");
Тзн.НоваяКолонка("ГП","Справочник.Товар");
Тзн.НоваяКолонка("Количество","Число",10,2,);
Тзн.НоваяКолонка("ВидОтгрузки","Перечисление.ВидОтгрузки");
//Заявка.Выгрузить(Тзн,,,Колонки);
Заявка.ВыбратьСтроки();
Пока Заявка.ПолучитьСтроку()=1 Цикл
Если Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э)<>0 Тогда
Тзн.НоваяСтрока();
Тзн.ГП=Заявка.Товар;
Тзн.Количество=Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э);
Если Тзн.ГП.ПринадлежитГруппе(Гр)=1 тогда
Тзн.ВидОтгрузки=Перечисление.ВидОтгрузки.Товары;
Иначе
Тзн.ВидОтгрузки=Перечисление.ВидОтгрузки.Товары1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Тзн.Выгрузить(глТзн);
ОткрытьФорму("Документ.ОтгрузкаГП",контекст,);
"
Перем э,н;
Колонки="1,"+СокрЛП(э);
Заявка.ТекущаяКолонка(,э);
Заявка.ПолучитьПараметрыКолонки(э,,,,н);
Тзн=СоздатьОбъект("ТаблицаЗначений");
Тзн.НоваяКолонка("ГП","Справочник.Товар");
Тзн.НоваяКолонка("Количество","Число",10,2,);
Тзн.НоваяКолонка("ВидОтгрузки","Перечисление.ВидОтгрузки");
//Заявка.Выгрузить(Тзн,,,Колонки);
Заявка.ВыбратьСтроки();
Пока Заявка.ПолучитьСтроку()=1 Цикл
Если Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э)<>0 Тогда
Тзн.НоваяСтрока();
Тзн.ГП=Заявка.Товар;
Тзн.Количество=Заявка.ПолучитьЗначение(Заявка.ТекущаяСтрока(),э);
Если Тзн.ГП.ПринадлежитГруппе(Гр)=1 тогда
Тзн.ВидОтгрузки=Перечисление.ВидОтгрузки.Товары;
Иначе
Тзн.ВидОтгрузки=Перечисление.ВидОтгрузки.Товары1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Тзн.Выгрузить(глТзн);
ОткрытьФорму("Документ.ОтгрузкаГП",контекст,);
"
Читают тему
(гостей: 1)