Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- &НаКлиенте
- Процедура ПутьКДаннымПриИзменении(Элемент)
- ПутьКФайлу = "C:\Users\slava\Documents\регистры\";
- Сообщить(ПутьКФайлу);
- КонецПроцедуры
- &НаСервере
- Процедура ЗагрузитьДанныеНаСервере()
- ТабДок = Новый ТабличныйДокумент;
- //ПутьКФайлу = "C:\Users\slava\Documents\регистры\shipping_report_14.07.2023_TEST.xls";
- Сообщение = Новый СообщениеПользователю;
- Попытка
- ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение);
- Сообщение.Текст = "Удалось прочитать указанный файл!";
- Сообщение.Сообщить();
- Исключение
- Сообщение.Текст = "Не удалось прочитать указанный файл " + ОписаниеОшибки();
- Сообщение.Сообщить();
- Возврат;
- КонецПопытки;
- КоличествоСтрок = ТабДок.ВысотаТаблицы;
- ДанныеФайла = Новый ТаблицаЗначений;
- ДанныеФайла.Колонки.Добавить("КлиентФирма");
- ДанныеФайла.Колонки.Добавить("ДатаОбновления");
- ДанныеФайла.Колонки.Добавить("ЗаявкаДатаОт");
- ДанныеФайла.Колонки.Добавить("ЗаявкаНомер");
- ДанныеФайла.Колонки.Добавить("КлиентИНН");
- ДанныеФайла.Колонки.Добавить("КлиентКПП");
- ДанныеФайла.Колонки.Добавить("ДатаОтгрузки");
- ДанныеФайла.Колонки.Добавить("НоменклатураКод");
- ДанныеФайла.Колонки.Добавить("НоменклатураНаименование");
- ДанныеФайла.Колонки.Добавить("ДатаСкачатьФайлы");
- ДанныеФайла.Колонки.Добавить("РегистрационныйНомер");
- ДанныеФайла.Колонки.Добавить("ЗарегистрированЧерезЛогинКлиента");
- ДанныеФайла.Колонки.Добавить("ЗарегистрированЧерезКодПатнера");
- Для НомерСтроки = 4 По КоличествоСтрок Цикл
- // Поля из доуцмента
- РеквизитыПоляЗавка = ПолучитьРеквизитыПоляЗаявка(ТабДок, НомерСтроки, 1);
- РеквизитыПоляКлиент = ПолучитьРеквизитыПоляКлиент(ТабДок, НомерСтроки, 2);
- ДатаОтгрузки = ИзСтрокиДату( ТолькоЦифры(ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, 3)) );
- РеквизитыПоляНоменклатура = ПолучитьРеквизитыПоляНоменклатура(ТабДок, НомерСтроки, 4);
- РегистрационныйНомер = ТолькоЦифры(ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, 5));
- ДатаСкачатьФайлы = ИзСтрокиДату( ТолькоЦифры(ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, 6)) );
- РеквизитыПоляЗарегистрирован = ПолучитьРеквизитыПоляЗарегистрирован(ТабДок, НомерСтроки, 7);
- // Задать значение в регистр сведений
- СтрокаДанных = ДанныеФайла.Добавить();
- СтрокаДанных.КлиентФирма = РеквизитыПоляКлиент.Фирма;
- СтрокаДанных.ДатаОбновления = ТекущаяДата();
- СтрокаДанных.ЗаявкаДатаОт = РеквизитыПоляЗавка.ЗаявкаДатаОт;
- СтрокаДанных.ЗаявкаНомер = РеквизитыПоляЗавка.ЗаявкаНомер;
- СтрокаДанных.КлиентИНН = РеквизитыПоляКлиент.ИНН;
- СтрокаДанных.КлиентКПП = РеквизитыПоляКлиент.КПП;
- СтрокаДанных.ДатаОтгрузки = ДатаОтгрузки;
- СтрокаДанных.НоменклатураКод = РеквизитыПоляНоменклатура.Код;
- СтрокаДанных.НоменклатураНаименование = РеквизитыПоляНоменклатура.Наименование;
- СтрокаДанных.ДатаСкачатьФайлы = ДатаСкачатьФайлы;
- СтрокаДанных.РегистрационныйНомер = РегистрационныйНомер; // дублируется в РеквизитыПоляЗарегистрирован.ЧерезКодПатнер
- СтрокаДанных.ЗарегистрированЧерезЛогинКлиента = РеквизитыПоляЗарегистрирован.ЧерезЛогинКлиента;
- СтрокаДанных.ЗарегистрированЧерезКодПатнера = РеквизитыПоляЗарегистрирован.ЧерезКодПатнера;
- // Задать значение в регистр сведений
- //Движения.Тест.Записывать = Истина;
- //Движение = Движения.Тест.Добавить();
- //Движение.Период = Дата;
- //Движение.Измерение1 = Дата;
- //Движение.Ресурс1 = Номер;
- ЗаписьПолей = РегистрыСведений.СписокОтгруженныхЭлектронныхПоставок.СоздатьМенеджерЗаписи();
- ЗаписьПолей.РегистрационныйНомер = РеквизитыПоляКлиент.Фирма;
- ЗаписьПолей.ДатаОбновления = ТекущаяДата();
- ЗаписьПолей.РегистрационныйНомер = РегистрационныйНомер; // дублируется в РеквизитыПоляЗарегистрирован.ЧерезКодПатнер
- ЗаписьПолей.ЗаявкаНомер = РеквизитыПоляЗавка.ЗаявкаНомер;
- ЗаписьПолей.ЗаявкаДатаОт = РеквизитыПоляЗавка.ЗаявкаДатаОт;
- ЗаписьПолей.КлиентИНН = РеквизитыПоляКлиент.ИНН;
- ЗаписьПолей.КлиентКПП = РеквизитыПоляКлиент.КПП;
- ЗаписьПолей.ДатаОтгрузки = ДатаОтгрузки;
- ЗаписьПолей.НоменклатураКод = РеквизитыПоляНоменклатура.Код;
- ЗаписьПолей.НоменклатураНаименование = РеквизитыПоляНоменклатура.Наименование;
- ЗаписьПолей.ДатаСкачатьФайлы = ДатаСкачатьФайлы;
- ЗаписьПолей.ЗарегистрированЧерезЛогинКлиента = РеквизитыПоляЗарегистрирован.ЧерезЛогинКлиента;
- ЗаписьПолей.ЗарегистрированЧерезКодПатнера = РеквизитыПоляЗарегистрирован.ЧерезКодПатнера;
- ЗаписьПолей.Записать();
- КонецЦикла;
- ЗагруженныеДанные.Загрузить(ДанныеФайла);
- КонецПроцедуры
- &НаКлиенте
- Процедура ЗагрузитьДанные(Команда)
- ЗагрузитьДанныеНаСервере();
- //Структура1 = Новый Структура;
- //Структура1.Вставить("Ключ1",12.3);
- //Структура1.Вставить("Ключ2", 33.4);
- // Сообщить(Структура1.Ключ1 +
- // Структура1.Ключ2);
- КонецПроцедуры
- Функция ПолучитьРеквизитыПоляЗаявка(ТабДок, НомерСтроки, НомерСтолбца)
- ЗначенияРеквизитов = Новый Структура;
- ТекстПоляЗаявка = ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
- НомерИДата = ТолькоЦифры(ТекстПоляЗаявка);
- ЗаявкаНомер = "WZ" + Лев(НомерИДата, 8); // нужна ли сортирвока по этому номеру, WZ убрать в другую колонку реквизит?
- ЗаявкаДатаОт = Прав(НомерИДата, 8);
- ЗначенияРеквизитов.Вставить("ЗаявкаНомер", ЗаявкаНомер );
- ЗначенияРеквизитов.Вставить("ЗаявкаДатаОт", изСтрокиДату(ЗаявкаДатаОт) );
- Возврат ЗначенияРеквизитов;
- КонецФункции
- Функция ПолучитьРеквизитыПоляКлиент(ТабДок, НомерСтроки, НомерСтолбца)
- ЗначенияРеквизитов = Новый Структура;
- ТекстПоляКлиент = ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
- ФирмаИннКпп = СтрРазделить(ТекстПоляКлиент, Символы.ПС);
- Фирма = ФирмаИннКпп[0];
- ИНН = ТолькоЦифры( ФирмаИннКпп[1] );
- КПП = ТолькоЦифры( ФирмаИннКпп[2] );
- ЗначенияРеквизитов.Вставить("Фирма", ФирмаИннКпп[0] );
- ЗначенияРеквизитов.Вставить("ИНН", ТолькоЦифры(ФирмаИннКпп[1]) );
- ЗначенияРеквизитов.Вставить("КПП", ТолькоЦифры(ФирмаИннКпп[2]) );
- Возврат ЗначенияРеквизитов;
- КонецФункции
- Функция ПолучитьРеквизитыПоляНоменклатура(ТабДок, НомерСтроки, НомерСтолбца)
- ЗначенияРеквизитов = Новый Структура;
- ТекстПоляНоменклатура = ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
- КодНаименование = СтрРазделить(ТекстПоляНоменклатура, Символы.ПС);
- ЗначенияРеквизитов.Вставить("Код", КодНаименование[0] );
- ЗначенияРеквизитов.Вставить("Наименование", КодНаименование[1] );
- Возврат ЗначенияРеквизитов;
- КонецФункции
- Функция ПолучитьРеквизитыПоляЗарегистрирован(ТабДок, НомерСтроки, НомерСтолбца)
- ЗначенияРеквизитов = Новый Структура;
- ТекстПоляПоляЗарегистрирован= ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
- КодНаименование = СтрРазделить(ТекстПоляПоляЗарегистрирован, " ");
- ЗначенияРеквизитов.Вставить("ЧерезЛогинКлиента", КодНаименование[0] );
- ЗначенияРеквизитов.Вставить("ЧерезКодПатнера", ТолькоЦифры(КодНаименование[1]) );
- Возврат ЗначенияРеквизитов;
- КонецФункции
- Функция ТолькоЦифры(Строка, ИсключениеСимвол = "")
- ИсключениеКодСимвола = КодСимвола(ИсключениеСимвол);
- Длинна = СтрДлина(Строка);
- Итог = "";
- Для Инд = 1 По Длинна Цикл
- Символ = Сред(Строка,Инд,1);
- КодСимвола = КодСимвола(Символ);
- Если (КодСимвола > 47 И КодСимвола < 58) ИЛИ (КодСимвола = ИсключениеКодСимвола) Тогда
- Итог = Итог + Символ;
- КонецЕсли;
- КонецЦикла;
- Возврат Строка( Итог );
- КонецФункции
- Функция ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца)
- Возврат ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки, "ЧГ=0") + "C" + НомерСтолбца).ТекущаяОбласть.Текст;
- КонецФункции
- Функция изСтрокиДату(строкаДата)
- Число = Лев(строкаДата, 2);
- Месяц = Сред(строкаДата, 3, 2);
- Год = Прав(строкаДата, 4);
- строкаДата = СтрШаблон("%1%2%3", Год, Месяц, Число);
- Возврат Формат(строкаДата, "ДЛФ=Д")
- КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement