Конечно, есть много статей в интернете как загрузить из файлов различных форматов в табличную часть документа. Даже 1С на диске ИТС «\1CIts\EXE\EXTREPS\UNIREPS81\UploadFromTableDocument.epf». Но обычно все они оторваны от жизни или требуют дополнительные ручные манипуляции.
Инструкция по доработке обработки от 1С.
1. Добавляем кнопку на форме, например, «УбратьРазрывы». В обработчик «нажатия» вставляем текст и добавляем свою процедуру в модуле формы:
Процедура КоманднаяПанельТабличногоДокументаУбратьРазрывы(Кнопка)
ПерваяСтрока = ПерваяСтрокаДанныхТабличногоДокумента;
ТабличныйДокумент = ЭлементыФормы.ТабличныйДокумент;
КоличествоСтрок = 999; //Максимальная строка в документе
КоличествоКолонок = 255; //Максимальная колонка в документе
КолонкаНумерацииСписок = Новый Массив;
КолонкаНумерации = 0;
А = 1;
Пока КолонкаНумерации = 0 Цикл
ПоискКолонкиНумерации(ТабличныйДокумент, ПерваяСтрока + А - 1, А, КолонкаНумерацииСписок);
Если КолонкаНумерацииСписок.Количество() = 0 Тогда
Прервать;
ИначеЕсли КолонкаНумерацииСписок.Количество() = 1 Тогда
КолонкаНумерации = КолонкаНумерацииСписок[0];
Прервать;
КонецЕсли;
А = А + 1
КонецЦикла;;
Если КолонкаНумерацииСписок.Количество() = 0 Тогда
Сообщить("Не удалось определить колонку нумерации.");
Возврат;
Иначе
КолонкаНумерации = КолонкаНумерацииСписок[0];
//Сообщить("Колонка нумерации = " + КолонкаНумерации);
КонецЕсли;
ТаблицаРазрывов = Новый ТаблицаЗначений;
ТаблицаРазрывов.Колонки.Добавить("НачалоРазрыва");
ТаблицаРазрывов.Колонки.Добавить("КонецРазрыва");
ТекущаяСтрока = 1;
НачалоРазрыва = 0;
КонецРазрыва = 0;
Для А = ПерваяСтрока По КоличествоСтрок Цикл
Попытка
ТекущаяЯчейка = Число(ТабличныйДокумент.Область("r" + А + "c" + КолонкаНумерации).Текст);
Исключение
Если НачалоРазрыва = 0 Тогда
НачалоРазрыва = А;
КонецЕсли;
КонецПопытки;
Если ТекущаяЯчейка = ТекущаяСтрока Тогда
Если НачалоРазрыва <> 0 Тогда
КонецРазрыва = А - 1;
Строка = ТаблицаРазрывов.Добавить();
Строка.НачалоРазрыва = НачалоРазрыва;
Строка.КонецРазрыва = КонецРазрыва;
НачалоРазрыва = 0;
КонецЕсли;
ТекущаяСтрока = ТекущаяСтрока + 1;
КонецЕсли;
КонецЦикла;
Если ТекущаяСтрока <> ТекущаяЯчейка Тогда
Строка = ТаблицаРазрывов.Добавить();
Строка.НачалоРазрыва = НачалоРазрыва;
Строка.КонецРазрыва = 0;
КонецЕсли;
Если ТаблицаРазрывов.Количество() <> 0 Тогда
ТабличныйДокумент2 = Новый ТабличныйДокумент;
Начало = 1;
Для Каждого Элемент Из ТаблицаРазрывов Цикл
Секция = ТабличныйДокумент.ПолучитьОбласть("R" + Начало + ":R" + (Элемент.НачалоРазрыва - 1));
ТабличныйДокумент2.Вывести(Секция);
Начало = Элемент.КонецРазрыва + 1;
КонецЦикла;
ТабличныйДокумент.Очистить();
Секция = ТабличныйДокумент2.ПолучитьОбласть("R1:R" + (ПерваяСтрока - 1 + ТекущаяСтрока - 1));
ТабличныйДокумент.Вывести(Секция);
КонецЕсли;
КонецПроцедуры
Процедура ПоискКолонкиНумерации(ТабличныйДокумент, ПерваяСтрока, Значение, КолонкаНумерацииСписок)
КолонкаНумерацииСписок2 = Новый Массив;
Для а = 1 По 100 Цикл
Попытка
ТекущаяЯчейка = Число(ТабличныйДокумент.Область("r" + ПерваяСтрока + "c" + а).Текст);
Исключение
Продолжить;
КонецПопытки;
Если ТекущаяЯчейка = Значение Тогда
КолонкаНумерацииСписок2.Добавить(а);
КонецЕсли;
КонецЦикла;
Если КолонкаНумерацииСписок.Количество() = 0 Тогда
КолонкаНумерацииСписок = КолонкаНумерацииСписок2;
Иначе
КолонкаНумерацииСписок3 = Новый Массив;
Для Каждого Элемент из КолонкаНумерацииСписок2 Цикл
Строка = КолонкаНумерацииСписок.Найти(Элемент);
Если Строка <> Неопределено Тогда
КолонкаНумерацииСписок3.Добавить(Строка);
КонецЕсли;
КонецЦикла;
КолонкаНумерацииСписок.Очистить();
КолонкаНумерацииСписок = КолонкаНумерацииСписок3;
КонецЕсли;
КонецПроцедуры
2. Инструкция по эксплуатации стандартной обработки //infostart.ru/public/97416/