Advertisement
Savelyev_Vyacheslav

Чтение 1С запись

Jul 17th, 2023
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.58 KB | None | 0 0
  1.  
  2. &НаКлиенте
  3. Процедура ПутьКДаннымПриИзменении(Элемент)
  4. ПутьКФайлу = "C:\Users\slava\Documents\регистры\";
  5. Сообщить(ПутьКФайлу);
  6. КонецПроцедуры
  7.  
  8.  
  9.  
  10. &НаСервере
  11. Процедура ЗагрузитьДанныеНаСервере()
  12. ТабДок = Новый ТабличныйДокумент;
  13.  
  14. //ПутьКФайлу = "C:\Users\slava\Documents\регистры\shipping_report_14.07.2023_TEST.xls";
  15.  
  16. Сообщение = Новый СообщениеПользователю;
  17.  
  18. Попытка
  19. ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение);
  20. Сообщение.Текст = "Удалось прочитать указанный файл!";
  21. Сообщение.Сообщить();
  22. Исключение
  23. Сообщение.Текст = "Не удалось прочитать указанный файл " + ОписаниеОшибки();
  24. Сообщение.Сообщить();
  25. Возврат;
  26. КонецПопытки;
  27.  
  28. КоличествоСтрок = ТабДок.ВысотаТаблицы;
  29.  
  30. ДанныеФайла = Новый ТаблицаЗначений;
  31.  
  32.  
  33. ДанныеФайла.Колонки.Добавить("КлиентФирма");
  34. ДанныеФайла.Колонки.Добавить("ДатаОбновления");
  35.  
  36. ДанныеФайла.Колонки.Добавить("ЗаявкаДатаОт");
  37. ДанныеФайла.Колонки.Добавить("ЗаявкаНомер");
  38. ДанныеФайла.Колонки.Добавить("КлиентИНН");
  39. ДанныеФайла.Колонки.Добавить("КлиентКПП");
  40. ДанныеФайла.Колонки.Добавить("ДатаОтгрузки");
  41. ДанныеФайла.Колонки.Добавить("НоменклатураКод");
  42. ДанныеФайла.Колонки.Добавить("НоменклатураНаименование");
  43. ДанныеФайла.Колонки.Добавить("ДатаСкачатьФайлы");
  44. ДанныеФайла.Колонки.Добавить("РегистрационныйНомер");
  45.  
  46. ДанныеФайла.Колонки.Добавить("ЗарегистрированЧерезЛогинКлиента");
  47. ДанныеФайла.Колонки.Добавить("ЗарегистрированЧерезКодПатнера");
  48.  
  49.  
  50. Для НомерСтроки = 4 По КоличествоСтрок Цикл
  51.  
  52. // Поля из доуцмента
  53. РеквизитыПоляЗавка = ПолучитьРеквизитыПоляЗаявка(ТабДок, НомерСтроки, 1);
  54. РеквизитыПоляКлиент = ПолучитьРеквизитыПоляКлиент(ТабДок, НомерСтроки, 2);
  55. ДатаОтгрузки = ИзСтрокиДату( ТолькоЦифры(ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, 3)) );
  56. РеквизитыПоляНоменклатура = ПолучитьРеквизитыПоляНоменклатура(ТабДок, НомерСтроки, 4);
  57. РегистрационныйНомер = ТолькоЦифры(ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, 5));
  58. ДатаСкачатьФайлы = ИзСтрокиДату( ТолькоЦифры(ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, 6)) );
  59. РеквизитыПоляЗарегистрирован = ПолучитьРеквизитыПоляЗарегистрирован(ТабДок, НомерСтроки, 7);
  60.  
  61. // Задать значение в регистр сведений
  62. СтрокаДанных = ДанныеФайла.Добавить();
  63. СтрокаДанных.КлиентФирма = РеквизитыПоляКлиент.Фирма;
  64. СтрокаДанных.ДатаОбновления = ТекущаяДата();
  65.  
  66. СтрокаДанных.ЗаявкаДатаОт = РеквизитыПоляЗавка.ЗаявкаДатаОт;
  67. СтрокаДанных.ЗаявкаНомер = РеквизитыПоляЗавка.ЗаявкаНомер;
  68. СтрокаДанных.КлиентИНН = РеквизитыПоляКлиент.ИНН;
  69. СтрокаДанных.КлиентКПП = РеквизитыПоляКлиент.КПП;
  70. СтрокаДанных.ДатаОтгрузки = ДатаОтгрузки;
  71. СтрокаДанных.НоменклатураКод = РеквизитыПоляНоменклатура.Код;
  72. СтрокаДанных.НоменклатураНаименование = РеквизитыПоляНоменклатура.Наименование;
  73. СтрокаДанных.ДатаСкачатьФайлы = ДатаСкачатьФайлы;
  74. СтрокаДанных.РегистрационныйНомер = РегистрационныйНомер; // дублируется в РеквизитыПоляЗарегистрирован.ЧерезКодПатнер
  75.  
  76. СтрокаДанных.ЗарегистрированЧерезЛогинКлиента = РеквизитыПоляЗарегистрирован.ЧерезЛогинКлиента;
  77. СтрокаДанных.ЗарегистрированЧерезКодПатнера = РеквизитыПоляЗарегистрирован.ЧерезКодПатнера;
  78.  
  79. // Задать значение в регистр сведений
  80. //Движения.Тест.Записывать = Истина;
  81. //Движение = Движения.Тест.Добавить();
  82. //Движение.Период = Дата;
  83. //Движение.Измерение1 = Дата;
  84. //Движение.Ресурс1 = Номер;
  85.  
  86. ЗаписьПолей = РегистрыСведений.СписокОтгруженныхЭлектронныхПоставок.СоздатьМенеджерЗаписи();
  87.  
  88. ЗаписьПолей.РегистрационныйНомер = РеквизитыПоляКлиент.Фирма;
  89. ЗаписьПолей.ДатаОбновления = ТекущаяДата();
  90.  
  91. ЗаписьПолей.РегистрационныйНомер = РегистрационныйНомер; // дублируется в РеквизитыПоляЗарегистрирован.ЧерезКодПатнер
  92. ЗаписьПолей.ЗаявкаНомер = РеквизитыПоляЗавка.ЗаявкаНомер;
  93. ЗаписьПолей.ЗаявкаДатаОт = РеквизитыПоляЗавка.ЗаявкаДатаОт;
  94. ЗаписьПолей.КлиентИНН = РеквизитыПоляКлиент.ИНН;
  95. ЗаписьПолей.КлиентКПП = РеквизитыПоляКлиент.КПП;
  96. ЗаписьПолей.ДатаОтгрузки = ДатаОтгрузки;
  97. ЗаписьПолей.НоменклатураКод = РеквизитыПоляНоменклатура.Код;
  98. ЗаписьПолей.НоменклатураНаименование = РеквизитыПоляНоменклатура.Наименование;
  99. ЗаписьПолей.ДатаСкачатьФайлы = ДатаСкачатьФайлы;
  100.  
  101. ЗаписьПолей.ЗарегистрированЧерезЛогинКлиента = РеквизитыПоляЗарегистрирован.ЧерезЛогинКлиента;
  102. ЗаписьПолей.ЗарегистрированЧерезКодПатнера = РеквизитыПоляЗарегистрирован.ЧерезКодПатнера;
  103.  
  104. ЗаписьПолей.Записать();
  105. КонецЦикла;
  106.  
  107.  
  108. ЗагруженныеДанные.Загрузить(ДанныеФайла);
  109.  
  110. КонецПроцедуры
  111.  
  112. &НаКлиенте
  113. Процедура ЗагрузитьДанные(Команда)
  114. ЗагрузитьДанныеНаСервере();
  115. //Структура1 = Новый Структура;
  116. //Структура1.Вставить("Ключ1",12.3);
  117. //Структура1.Вставить("Ключ2", 33.4);
  118. // Сообщить(Структура1.Ключ1 +
  119. // Структура1.Ключ2);
  120.  
  121. КонецПроцедуры
  122.  
  123.  
  124.  
  125.  
  126. Функция ПолучитьРеквизитыПоляЗаявка(ТабДок, НомерСтроки, НомерСтолбца)
  127. ЗначенияРеквизитов = Новый Структура;
  128. ТекстПоляЗаявка = ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
  129. НомерИДата = ТолькоЦифры(ТекстПоляЗаявка);
  130. ЗаявкаНомер = "WZ" + Лев(НомерИДата, 8); // нужна ли сортирвока по этому номеру, WZ убрать в другую колонку реквизит?
  131. ЗаявкаДатаОт = Прав(НомерИДата, 8);
  132. ЗначенияРеквизитов.Вставить("ЗаявкаНомер", ЗаявкаНомер );
  133. ЗначенияРеквизитов.Вставить("ЗаявкаДатаОт", изСтрокиДату(ЗаявкаДатаОт) );
  134. Возврат ЗначенияРеквизитов;
  135. КонецФункции
  136.  
  137. Функция ПолучитьРеквизитыПоляКлиент(ТабДок, НомерСтроки, НомерСтолбца)
  138. ЗначенияРеквизитов = Новый Структура;
  139. ТекстПоляКлиент = ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
  140. ФирмаИннКпп = СтрРазделить(ТекстПоляКлиент, Символы.ПС);
  141. Фирма = ФирмаИннКпп[0];
  142. ИНН = ТолькоЦифры( ФирмаИннКпп[1] );
  143. КПП = ТолькоЦифры( ФирмаИннКпп[2] );
  144. ЗначенияРеквизитов.Вставить("Фирма", ФирмаИннКпп[0] );
  145. ЗначенияРеквизитов.Вставить("ИНН", ТолькоЦифры(ФирмаИннКпп[1]) );
  146. ЗначенияРеквизитов.Вставить("КПП", ТолькоЦифры(ФирмаИннКпп[2]) );
  147.  
  148. Возврат ЗначенияРеквизитов;
  149. КонецФункции
  150.  
  151. Функция ПолучитьРеквизитыПоляНоменклатура(ТабДок, НомерСтроки, НомерСтолбца)
  152. ЗначенияРеквизитов = Новый Структура;
  153. ТекстПоляНоменклатура = ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
  154. КодНаименование = СтрРазделить(ТекстПоляНоменклатура, Символы.ПС);
  155. ЗначенияРеквизитов.Вставить("Код", КодНаименование[0] );
  156. ЗначенияРеквизитов.Вставить("Наименование", КодНаименование[1] );
  157. Возврат ЗначенияРеквизитов;
  158. КонецФункции
  159.  
  160. Функция ПолучитьРеквизитыПоляЗарегистрирован(ТабДок, НомерСтроки, НомерСтолбца)
  161. ЗначенияРеквизитов = Новый Структура;
  162. ТекстПоляПоляЗарегистрирован= ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца);
  163. КодНаименование = СтрРазделить(ТекстПоляПоляЗарегистрирован, " ");
  164. ЗначенияРеквизитов.Вставить("ЧерезЛогинКлиента", КодНаименование[0] );
  165. ЗначенияРеквизитов.Вставить("ЧерезКодПатнера", ТолькоЦифры(КодНаименование[1]) );
  166. Возврат ЗначенияРеквизитов;
  167. КонецФункции
  168.  
  169. Функция ТолькоЦифры(Строка, ИсключениеСимвол = "")
  170. ИсключениеКодСимвола = КодСимвола(ИсключениеСимвол);
  171. Длинна = СтрДлина(Строка);
  172. Итог = "";
  173. Для Инд = 1 По Длинна Цикл
  174. Символ = Сред(Строка,Инд,1);
  175. КодСимвола = КодСимвола(Символ);
  176. Если (КодСимвола > 47 И КодСимвола < 58) ИЛИ (КодСимвола = ИсключениеКодСимвола) Тогда
  177. Итог = Итог + Символ;
  178. КонецЕсли;
  179. КонецЦикла;
  180. Возврат Строка( Итог );
  181. КонецФункции
  182.  
  183. Функция ПолучитьЗначениеИзЯчейки(ТабДок, НомерСтроки, НомерСтолбца)
  184. Возврат ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки, "ЧГ=0") + "C" + НомерСтолбца).ТекущаяОбласть.Текст;
  185. КонецФункции
  186.  
  187. Функция изСтрокиДату(строкаДата)
  188. Число = Лев(строкаДата, 2);
  189. Месяц = Сред(строкаДата, 3, 2);
  190. Год = Прав(строкаДата, 4);
  191. строкаДата = СтрШаблон("%1%2%3", Год, Месяц, Число);
  192. Возврат Формат(строкаДата, "ДЛФ=Д")
  193. КонецФункции
  194.  
  195.  
  196.  
  197.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement