Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
ОБСУЖДЕНИЕ
1c7.7 ТЗ, как скопировать строку?
10 ответов
7,5 тыс.
AI-выжимка обсужденияскоро
Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.
Обзор обсужденияскоро
Разбор ответов скоро
Ключевые ответы обсуждения и их оценка появятся здесь.
Эксперты в тредескоро
Рейтинг участников скоро
Участники с сильными ответами в этой теме появятся здесь.
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
обхожу ТЗ в цикле в какой-то момент получаю строку, значения которой мне нужно продублировать, т.е. чтобы появилась еще одна строка после текущей со значениями текущей. как это сделать?
Именно сразу после текущей или просто продублировать (вконец добавить)
Можно просто делать НоваяСтрока(), а потом СдвинутьСтроку()
Если мешает перебору, то добавлять можно в другую таблицу (предварительно в нее выгрузить первичную)
Если в ТЗ не слишком много колонок, то можно не мудрить, а просто через равно колонки присваивать
Если много, то в цикле по КоличествоКолонок() делать ТЗ2.УстановитьЗначение(<Строка>,<Колонка>,ТЗ1.ПолучитьЗначение(<Строка>,<Колонка>))
НоваяСтрока(<НомерСтроки>)
Назначение:
Добавляет новую строку в таблицу значений.
Параметры:
<НомерСтроки> - необязательный параметр. Числовое выражение, содержащее позицию, в которую следует вставить новую строку.
про новую строку я знаю. и как передать в новой стоке парметр тоже знаю. и то что можно сначала выгрузить значения колонок из одной строки "через равно" и заполнить новую - тоже. но это неинтересно. неужели нет какого-нить более оптимального способа копирования строки в ТЗ?
А = 1;
Пока А <= ТЗ.КоличествоСтрок() Цикл
Если ... Тогда //проверяем условие копирования строки
ТЗ.НоваяСтрока(А+1);
Для КК = 1 По ТЗ.КоличествоКолонок() Цикл
ТЗ.УстановитьЗначение(А+1,КК,ТЗ.ПолучитьЗначение(А,КК));
КонецЦикла;
А = А + 1; // если вновь вставленную строку надо пропустить
КонецЕсли;
А = А + 1;
КонецЦикла;
В таком случае возможно нарушение выборки. Поэтому я бы для такого цикла писал в новую таблицу, которую загружал бы по окончании в старую. Сложность универсальности заключается в том, что не всегда возможно привести типы колонок универсально. Да и не совсем понятно, как отработает ТЗ.НоваяСтрока() при открытой выборке. Вполне допускаю, что она либо не появится в выборке, но потом будет видна в таблице, как добавленная (т.е. 1С при открытии выборки создают копию таблицы), либо 1С не позволит добавить строку, потому как собъется выборка.
нужно помнить об этом и обрабатывать такую ситуацию и все ок будет.
а вообще спибо за предложенный вариант копирования. ток я уже присвоением сделал.. ща пойал себя на мысли что очень многие штуки можно было сделать черезподобную выгрузку загрузу, а я блин по неопытности получал нужную строку, брал оттуда данные, а потом возвращался к первоначальной стоке.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь. Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.