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

Автор Тема: Добавить новую строку в документ  (Прочитано 18277 раз)

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

Оффлайн Валент

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-20
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день.
Помогите, пожалуйста, добавить новую строку в табличную часть документа программно.
Есть документ с многострочной табличной частью. Процедурой Сформировать() расчитываются и заносятся данные. Здесь НоваяСтрока() великолепно работает. Хочу в эту сформированную табличную часть из другой процедуры добавить новые строки. Не получается. НоваяСтрока() не работает. Пыталась выгрузить табличную часть в таблицу значений, добавить туда новые строки, затем загрузить из ТЗ, загружаются только старые записи, без новых добавленных. Спасибо.


Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Стр = Объект.ТабличнаяЧасть.Добавить();
Стр.Товар = Значение1;
// и так далее по колонкам которые у вас в таб. части!
Добавлено: 20 Фев 2013, 12:11

Табличная часть (Tabular section)
Добавить (Add)
Синтаксис:

Добавить()
Возвращаемое значение:

Тип: Строка табличной части.

Описание:

Добавляет строку в конец табличной части.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.
Пример:

Состав.Добавить();
 
Помогли, отблагодари!

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
речь идет о 7.7, так что ответ Yura063, видимо не в тему.
по идее НоваяСтрока() должна работать. может быть покажите кусок кода из второй процедуры?

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Извините за невнимательность, mixqn!
Помогли, отблагодари!

Оффлайн Валент

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-20
  • Сайт: 
  • Профессия: Ученик 1С
Процедура, из которой я хочу добавить строки. Процедура работает, но новые строки не добавляютя. Меняются данные в той строке, на которой стою. Если в цикле получается несколько новых строк, то записывается последняя. 
Процедура ПриВыбореПрРазвернуть()
    НомСтрНов=0;
    НомСтр   =НомерСтрокиЗаписи;
    Родитель =СокрЛП(Клиент);
    Ит = создатьОбъект("БухгалтерскиеИтоги");         
    РазделительУчета = БухИтоги.ИспользоватьРазделительУчета();
    Ит.ИспользоватьРазделительУчета(РазделительУчета);
    ПланСчетов = ВыбранныйПланСчетов();
    Ит.ИспользоватьПланСчетов(ПланСчетов);
    ВидСубконто1 = НомерСчета.ВидСубконто(1);
    Ит.ИспользоватьСубконто(ВидСубконто1,,1,1);
    ДатаНачала=НачГода(ДатаДок-1);
    ДатаОкончания=ДатаДок-1;
    Ит.ВыполнитьЗапрос(ДатаНачала,ДатаОкончания,НомерСчета);
    Ит.ВыбратьСубконто();
    Пока Ит.ПолучитьСубконто(1)=1 Цикл
   Если СокрЛП(Ит.Субконто().Родитель)=Родитель Тогда
      НоваяСтрока();
      УстановитьАтрибут("Клиент",Ит.ПредставлениеСубконто());
      УстановитьАтрибут("ДтЗадолженность",Ит.СКД());
       УстановитьАтрибут("КтЗадолженность",Ит.СКК());
       УстановитьАтрибут("ДатаНач",ДатаОкончания);
      НомСтрНов=НомСтрНов+1;
      УстановитьАтрибут("НомерСтрокиДляРазвернуть",НомСтрНов);
      УстановитьАтрибут("НомерСтрокиЗаписи",НомСтр);
    КонецЕсли;   
    КонецЦикла;
    СортироватьСтроки("+НомерСтрокиЗаписи,НомерСтрокиДляРазвернуть");
Конецпроцедуры

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Процедура работает, но новые строки не добавляютя.

Каким образом она работает, если новые строки не добавляются? По коду видно, что назначение процедуры как раз в добавлении строк, а раз они не добавляются, то почему вы считаете что процедура работает?)

Скорее всего проблема в этом условии:
Если СокрЛП(Ит.Субконто().Родитель)=Родитель Тогда

возможно что при каком-либо варианте это условие не срабатывает, и строки не добавляются.

отладчик откройте и посмотрите на каком варианте условие не срабатывает.

Оффлайн Валент

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-20
  • Сайт: 
  • Профессия: Ученик 1С
Условие
Если СокрЛП(Ит.Субконто().Родитель)=Родитель Тогда
работает, новые данные, полученные внутри условия, записываются в текущую строку табличной части.
Смотрела в отладчике.

Оффлайн start2000

  • **
  • Сообщений: 73
  • РЕПУТАЦИЯ: 29
  • КПД: 40%
  • Регистрация: 2011-04-23
  • Сайт: 
  • Профессия: Программист 7.7
После строки
   НоваяСтрока();
добавьте строку
   АктивизироватьСтроку(КоличествоСтрок());
иначе у Вас курсор на последней выбранной строке табличной части установлен
если помог, то смело жми Спасибо!

Оффлайн Валент

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-20
  • Сайт: 
  • Профессия: Ученик 1С
Дело в том, что не добавляюся строки после НоваяСтрока(). Например, табличная часть имеет 45 строк.
Смотрю в отладчике :
КоличествоСтрок()=45,
Работает процедура :
...
НоваяСтрока();
УстановитьАтрибут("Клиент",Клиент);
...
в отладчике КоличествоСтрок()=45, т.е. после НоваяСтрока() число строк не увеличивается

Оффлайн start2000

  • **
  • Сообщений: 73
  • РЕПУТАЦИЯ: 29
  • КПД: 40%
  • Регистрация: 2011-04-23
  • Сайт: 
  • Профессия: Программист 7.7
В версии 7.7: Добавлять/удалять строки в табличной части можно:
  • из процедуры, вызываемой из элемента диалога "Кнопка";
  • из предопределенных процедур;
  • из процедуры, вызываемой из элемента диалога не табличной части типа реквизит, переключатель, флажок, список, поле со списком.
И Вы до сих пор не озвучили какая у Вас конфигурация и версия платформы 1С.
если помог, то смело жми Спасибо!


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
177 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
AIFrame
45 Сообщений
alex0402
44 Сообщений
andron81_81
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal