Advertisement
Thesilverwolf

Копирование строк

Mar 29th, 2018
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. Функция КопироватьНаСервере(МассивСтрок)
  2. // Вставить содержимое обработчика.
  3. Если ЗначениеЗаполнено(ДокументЗаявки) Тогда
  4. ТЧ = РеквизитФормыВЗначение("Объект");
  5. ДокументСсылочка = ДокументЗаявки.Ссылка;
  6. Перфоманс = ДокументСсылочка.ПолучитьОбъект();
  7. Для каждого Элемент из МассивСтрок ЦИКЛ
  8. СтрокаТовара = Перфоманс.Товары.Добавить();
  9. ТЧ.Товары[Элемент].Поставлен = ЛОЖЬ;
  10. ЗаполнитьЗначенияСвойств(СтрокаТовара,ТЧ.Товары[Элемент]);
  11. КонецЦикла;
  12. Перфоманс.Записать(РежимЗаписиДокумента.Запись);
  13. Иначе
  14. Сообщить("Не выбрана заявка для копирования выделенных позиций");
  15. КонецЕсли;
  16. КонецФункции
  17.  
  18. Функция ОбновитьДокумент()
  19. ЭтотОбъект.Записать();
  20. ЭтотОбъект.Прочитать();
  21. КонецФункции
  22.  
  23. Функция Недубликат()
  24. Если ДокументЗаявки.Ссылка <> Объект.Ссылка Тогда
  25. Возврат Истина;
  26. Иначе
  27. Возврат ЛОЖЬ;
  28. КонецЕсли;
  29. КонецФункции
  30.  
  31. &НаКлиенте
  32. Процедура Копировать(Команда)
  33. Если ЗначениеЗаполнено(ДокументЗаявки) Тогда
  34. Если Недубликат() Тогда
  35. Если УдалитьПослеКопирования = ИСТИНА Тогда
  36. Ответ = Вопрос("Данная операция:"+Символы.ПС+"1. Сохранит все изменения в заявке"+Символы.ПС+"2. Скопирует позиции"+Символы.ПС+"3. Удалит позиции, и запишет изменения"+Символы.ПС+"Хотите продолжить?",РежимДиалогаВопрос.ДаНет,0,КодВозвратаДиалога.Да,"Внимание");
  37. Иначе
  38. Ответ = Вопрос("Данная операция:"+Символы.ПС+"1. Сохранит все изменения в заявке"+Символы.ПС+"2. Скопирует позиции"+Символы.ПС+"Хотите продолжить?",РежимДиалогаВопрос.ДаНет,0,КодВозвратаДиалога.Да,"Внимание");
  39. КонецЕсли;
  40.  
  41. Если Ответ = КодВозвратаДиалога.Да Тогда
  42. ОбновитьДокумент();
  43. ВыделенныеСтроки = Элементы.Товары.ВыделенныеСтроки;
  44. КопироватьНаСервере(ВыделенныеСтроки);
  45.  
  46. Список = Новый СписокЗначений;
  47. Список.ЗагрузитьЗначения(ВыделенныеСтроки);
  48. Список.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
  49. ВыделенныеСтроки = Список.ВыгрузитьЗначения();
  50.  
  51.  
  52. Если УдалитьПослеКопирования = ИСТИНА Тогда
  53. Для каждого Индекс из ВыделенныеСтроки Цикл
  54. Объект.Товары.Удалить(Индекс);
  55.  
  56. КонецЦикла;
  57. ОбновитьДокумент();
  58. КонецЕсли;
  59. КонецЕсли;
  60. Иначе
  61. Сообщить("Ай-яй, нельзя копировать позиции в заявку откуда идет копирование");
  62. КонецЕсли;
  63. Иначе
  64. Сообщить("Не выбрана заявка для копирования выделенных позиций");
  65. КонецЕсли;
  66.  
  67.  
  68.  
  69. КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement