При копировании из Excel в 1С не корректно вставляет значения
☑
0
dan4ik
03.02.22
✎
16:48
Все привет!
При копировании из xlsx в 1с, если скопировать из строки > 65536 при вставке в 1с в табличный документ вставляет из другой строки (у меня из 65536), может кто сталкивался с такой проблемой
1
Бизон
03.02.22
✎
16:58
когда деревья были маленькими у экселя не могло быть больше 64000 строк
2
dan4ik
03.02.22
✎
17:23
идея пришла только сделать к примеру кнопку с сочетанием клавиш Ctrl+V и в обработчике команды создать ComОбъект htmlfile получить значение из буфера... как так пока
3
vicof
03.02.22
✎
17:30
Говорят, что к экселю можно обращаться, как к ком-объекту.
4
dan4ik
03.02.22
✎
18:08
На всякий случай оставлю здесь, вдруг кому поможет...
Процедура Панель1ПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница = ЭлементыФормы.Панель1.Страницы.Индекс(ЭлементыФормы.Панель1.Страницы.Страница7) Тогда
ЭлементыФормы.КоманднаяПанель15.Кнопки.ВставитьИзБуфера.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.V, Ложь, Истина);
Иначе
ЭлементыФормы.КоманднаяПанель15.Кнопки.ВставитьИзБуфера.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Нет);
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанель15Вставить(Кнопка)
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента14;
Если ВводДоступен() И ТекущийЭлемент = ТабДок Тогда
Верх = ТабДок.ТекущаяОбласть.Верх;
Лево = ТабДок.ТекущаяОбласть.Лево;
Разделитель = Символ(9);
Текст = ПолучитьТекстБуфераОбмена();
МассивСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Текст, Символы.ПС);
Для Индекс = 0 По МассивСтрок.ВГраница() Цикл
ТекущаяСтрока = МассивСтрок[Индекс];
МассивЧастей = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТекущаяСтрока, Разделитель);
Для ИндексКолонки = 0 По МассивЧастей.ВГраница() Цикл
Зн = СокрЛП(МассивЧастей[ИндексКолонки]);
СтрокаИндекс = Верх + Индекс;
КолонкаИндекс = Лево + ИндексКолонки;
ТабДок.Область(СтрокаИндекс, КолонкаИндекс, СтрокаИндекс, КолонкаИндекс).Текст = Зн;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьТекстБуфераОбмена() Экспорт
#Если Клиент Тогда
Объект = Новый COMОбъект("htmlfile");
Возврат Объект.ParentWindow.ClipboardData.Getdata("text");
#КонецЕсли
КонецФункции
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс