Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос документов 7,7-8,1
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
kuman
Здравствуйте!
Переношу документы из 7,7 в 8,1 через Эксель с помощью типовой обработки 8,1 =Загрузка данных из табличного документа=
Файл Экселя в виде (авансовые отчеты)
Номер Дата Время Сумма
АО-0000002 08.05.08 12:02:10 1276
АО-0000001 05.07.08 12:00:50 250
АО-0000004 08.09.08 12:00:10 30
АО-0000003 09.09.08 12:00:20 84.1
АО-0000025 18.02.09 12:00:10 108
АО-0000001 03.03.09 11:55:37 135
АО-0000002 15.03.09 19:20:48 280
АО-0000003 30.03.09 12:01:20 260
АО-0000041 31.03.09 12:00:10 51.2
АО-0000004 10.04.09 12:01:30 500
АО-0000005 28.04.09 09:40:05 200
АО-0000006 02.05.09 12:00:40 440
АО-0000007 15.05.09 14:23:49 470
Со всеми переменными разобрался, но не могу добиться, чтобы обработка читала дату документа.
В примере, который идет вместе с обработкой в экселе дата стоит в формате 20090113185138 и в закладке события дописаны команды
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
Обработка выдает-Получение элемента по индексу для значения не определено.
Меняю дату в формат 20090113185138-Получение элемента по индексу для значения не определено
Мне время вновь созданного документа не актуально, актуальна лишь дата.
Я в программировании 1С не силен, подскажите как можно поступить в данном случае.
Спасибо.
logist
Цитата(kuman @ 26.11.13, 19:56) необходимо зарегистрироваться для просмотра ссылки
Получение элемента по индексу для значения не определено.

Проблема тут, а не в дате:
Цитата(kuman @ 26.11.13, 19:56) необходимо зарегистрироваться для просмотра ссылки
ТекстыЯчеек[2]

1С говорит что в таблице(массиве, или что там у вас) нет элемента с индексом 2
kuman
Цитата(logist @ 26.11.13, 19:21) необходимо зарегистрироваться для просмотра ссылки
Проблема тут, а не в дате:

1С говорит что в таблице(массиве, или что там у вас) нет элемента с индексом 2


Я думал, что [2]-это номер столбца
Как написать, чтобы брал данные из второго столбца?
alex040269
А откуда взялись ТекстыЯчеек?
Я не телепат smile.gif я только учусь wink.gif
kuman
Цитата(alex040269 @ 26.11.13, 19:37) необходимо зарегистрироваться для просмотра ссылки
А откуда взялись ТекстыЯчеек?
Я не телепат smile.gif я только учусь wink.gif


забыли о командах
Есть массив данных (см. выше)
Какую команду написатьв собитыях, чтобы дата новых документов считывалась с массива?
Zaval
Цитата(kuman @ 26.11.13, 18:56) необходимо зарегистрироваться для просмотра ссылки
Я в программировании 1С не силен

В каком именно - 7.7 или 8.Х?
И сразу - "перенос документов"? Вы представляете, сколько времени займет у Вас перенос таким способом?

На закладке Настройки включите ручную нумерацию колонок и расставьте все по-своему.

И... это, почему 8.1 а не 8.2?
Vofka
Цитата(Zaval @ 26.11.13, 19:56) необходимо зарегистрироваться для просмотра ссылки
Вы представляете, сколько времени займет у Вас перенос таким способом?

Откуда вы знаете количественные характеристики базы? Может там всех документов 100 штук. И сколько это может занять? Я думаю, с предварительной подготовкой, в день можно уложиться на среднестатистической базе.
kuman
Цитата(Zaval @ 26.11.13, 19:56) необходимо зарегистрироваться для просмотра ссылки
В каком именно - 7.7 или 8.Х?
И сразу - "перенос документов"? Вы представляете, сколько времени займет у Вас перенос таким способом?

На закладке Настройки включите ручную нумерацию колонок и расставьте все по-своему.

И... это, почему 8.1 а не 8.2?


В настройках нумерация колонок ручная - я же писал разобрался, но заполнение даты идет програмным путем-тут я и прошу помоши.
А в каком программировании я не силен-имеет разницу?
Документов на самом деле не много, но вручную никак.
Zaval
Цитата(Vofka @ 26.11.13, 20:03) необходимо зарегистрироваться для просмотра ссылки
Откуда вы знаете количественные характеристики базы? Может там всех документов 100 штук. И сколько это может занять? Я думаю, с предварительной подготовкой, в день можно уложиться на среднестатистической базе.

Не знаю smile.gif Главное - чтобы ТС знал и понимал, во что ввязывается...

Цитата(kuman @ 26.11.13, 20:12) необходимо зарегистрироваться для просмотра ссылки
В настройках нумерация колонок ручная - я же писал разобрался

Не вижу, уверены, что на этом форуме? smile.gif

На той платформе, где более "не силен", нужно свести всякие манипуляции к минимуму.

Нпр, можно при выгрузке из 7.7 сразу сформировать в одну ячейку ГГГГММДДччммсс, тогда в обработке
в строке Дата указать номер колонки, РежимЗагрузки - Вычислять, Выражение - что-то вроде
Дата(СокрЛП(ТекстЯчейки))

или
Значение = Дата(СокрЛП(ТекстЯчейки))

Точно не скажу - давно с этим не возился.

А так придется в Выражении из фрагментов данных двух ячеек формировать аргумент для Дата()

Смотрите в СП "Общее описание..." - "Встроенные функции", там все есть.
kuman
Цитата(Zaval @ 26.11.13, 21:07) необходимо зарегистрироваться для просмотра ссылки
Не знаю smile.gif Главное - чтобы ТС знал и понимал, во что ввязывается...


Не вижу, уверены, что на этом форуме? smile.gif

На той платформе, где более "не силен", нужно свести всякие манипуляции к минимуму.

Нпр, можно при выгрузке из 7.7 сразу сформировать в одну ячейку ГГГГММДДччммсс, тогда в обработке
в строке Дата указать номер колонки, РежимЗагрузки - Вычислять, Выражение - что-то вроде
Дата(СокрЛП(ТекстЯчейки))

или
Значение = Дата(СокрЛП(ТекстЯчейки))

Точно не скажу - давно с этим не возился.

А так придется в Выражении из фрагментов данных двух ячеек формировать аргумент для Дата()

Смотрите в СП "Общее описание..." - "Встроенные функции", там все есть.


Мне категорична дата, а время можно задать во всех документах 12-00-00, скажем.
А в обработке нет строки дата, в которую можно подставить вычислять выражение.
необходимо зарегистрироваться для просмотра ссылки
Ardi
Написать
Сообщить(ТекстыЯчеек[2])

Сообщить(ТекстыЯчеек)

Сообщить(ТипЗнч(ТекстыЯчеек))
Zaval
Ппц.. Это "типовая обработка "Загрузка данных из табличного документа""??? sad.gif



Проверьте тип значения в ячейке.
Запустите Предприятие из Конфигуратора в режиме Отладки.
При остановке по ошибке из окна сообщения перейдите в Конфигуратор, поставьте на нужной строке точку останова - проверяйте типы значений.
Ardi
На инфостарте написано "- файлы настроек для загрузки документов конфигурации "Бухгалтерия предприятия, редакция 1.6": ПоступлениеТоваровИУслуг.mxlz и РеализацияТоваровИУслуг.mxlz"
Поэтому требуется сама обработка и эти файлы.
kuman
Цитата(Ardi @ 26.11.13, 22:01) необходимо зарегистрироваться для просмотра ссылки
Написать
Сообщить(ТекстыЯчеек[2])

Сообщить(ТекстыЯчеек)

Сообщить(ТипЗнч(ТекстыЯчеек))


на первую команду
-если формат ячейки 20090113185138, то пишет 20090113185138
-если формат ячейки 08.05.08, то 08.05.08.
А на остальные команды пишет массив.
Я так понимаю, надо число в виде 08.05.08 разобрать на понятное команды 1С типа год-месяц-число?
Типа такого (гугл)
ДатаДок_1 = СОКРЛП(ТекстыЯчеек[1]);
Год = Число(Сред(ДатаДок_1, 7, 4));
Месяц = Число(Сред(ДатаДок_1, 4, 2));
День = Число(Сред(ДатаДок_1, 1, 2));
ДатаДок = Дата(Год, Месяц, День);
Только я не знаю, что тут означают команды, поэтому править и не могу.
Zaval
Тогда уж как-то так
ДатаДок_1 = СОКРЛП(ТекстыЯчеек[2]);
Год = 2000 + Число(Сред(ДатаДок_1, 7, 2));
Месяц = Число(Сред(ДатаДок_1, 4, 2));
День = Число(Лев(ДатаДок_1, 2));
ДатаДок = Дата(Год, Месяц, День);

или так
ДатаДок_1 = СОКРЛП(ТекстыЯчеек[2]);
Год = 2000 + Число(Сред(ДатаДок_1, 7, 2));
Месяц = Число(Сред(ДатаДок_1, 4, 2));
День = Число(Лев(ДатаДок_1, 2));

Время = СОКРЛП(ТекстыЯчеек[3]);
Часы = Число(Лев(Время, 2));
Минуты = Число(Сред(Время, 4, 2));
Секунды = Число(Сред(Время, 7, 2));

ДатаДок = Дата(Год, Месяц, День, Часы, Минуты, Секунды);



"Что означают команды" - смотрите в СП.
kuman
Цитата(Zaval @ 26.11.13, 22:43) необходимо зарегистрироваться для просмотра ссылки
Тогда уж как-то так
ДатаДок_1 = СОКРЛП(ТекстыЯчеек[2]);
Год = 2000 + Число(Сред(ДатаДок_1, 7, 2));
Месяц = Число(Сред(ДатаДок_1, 4, 2));
День = Число(Лев(ДатаДок_1, 2));
ДатаДок = Дата(Год, Месяц, День);

или так
ДатаДок_1 = СОКРЛП(ТекстыЯчеек[2]);
Год = 2000 + Число(Сред(ДатаДок_1, 7, 2));
Месяц = Число(Сред(ДатаДок_1, 4, 2));
День = Число(Лев(ДатаДок_1, 2));

Время = СОКРЛП(ТекстыЯчеек[3]);
Часы = Число(Лев(Время, 2));
Минуты = Число(Сред(Время, 4, 2));
Секунды = Число(Сред(Время, 7, 2));

ДатаДок = Дата(Год, Месяц, День, Часы, Минуты, Секунды);



"Что означают команды" - смотрите в СП.


Спасибо!
Да, это оно - команды разбирают мой формат времени по полочкам.
Но при присвоении даты документа выдает ошибку.
Не понимает формат типа

ДатаДок = Дата(Год, Месяц, День, Часы, Минуты, Секунды)

Может дело в формате даты
Типа
необходимо зарегистрироваться для просмотра ссылки


А нет, дата документа формируется, только вопрос, при исполнении какого события ее вставлять.
Обработка ругается
Создан новый документ
Добавлена строка: 1
Ошибка при вызове метода контекста (Записать): Не задана дата документа
Объект не записан: ДокументТабличнаяЧастьСтрока.ПрочиеЗатраты.Затраты.

Пишу сообщить ДатаДок - выдает все верно-
Создан новый документ
04.03.2008 12:00:10
Добавлена строка: 1
04.03.2008 12:00:10
Добавлена строка: 2
---------------------------------------------
Получение элемента по индексу для значения не определено
Объект не записан: ДокументТабличнаяЧастьСтрока.ПрочиеЗатраты.Затраты

Но почему не хочет создавать документ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.