BlackSmith2021

ФормаСозданиеДокумента

Nov 30th, 2024
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.23 KB | None | 0 0
  1.  
  2. &НаКлиенте
  3. Процедура СоздатьПриход(Команда)
  4.     СоздатьПриходНаСервере();
  5. КонецПроцедуры
  6.  
  7. &НаСервере
  8. Процедура СоздатьПриходНаСервере()
  9.     ДокОбъект = Документы.ПриходнаяНакладная.СоздатьДокумент();
  10.     ДокОбъект.Дата = Дата;
  11.     ДокОбъект.Склад = Склад;
  12.     ДокОбъект.Менеджер = Менеджер;
  13.     ДокОбъект.Коментарий = Коментарий;
  14.    
  15.     Для Счетчик = 0 ПО Объект.Номенклатура.Количество() - 1 Цикл
  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.     Для Счетчик = 0 ПО Объект.Номенклатура.Количество() - 1 Цикл
  41.         ТекущаяСтрока = Объект.Номенклатура.Получить(Счетчик);
  42.         НоваяСтрока = ДокОбъект.Номенклатура.Добавить();
  43.         НоваяСтрока.Номенклатура = ТекущаяСтрока.Номенклатура;
  44.         НоваяСтрока.ЕдИзм = ТекущаяСтрока.ЕдИзм;
  45.         НоваяСтрока.Количество = ТекущаяСтрока.Количество;
  46.         НоваяСтрока.Цена = ТекущаяСтрока.Цена;
  47.         НоваяСтрока.Сумма = текущаяСтрока.Сумма;
  48.     КонецЦикла;
  49.     ДокОбъект.Записать();
  50. КонецПроцедуры
  51.  
  52.  
  53. //Процедуры работы с таблицей
  54. &НаКлиенте
  55. Процедура НоменклатураНоменклатураПриИзменении(Элемент)
  56.     Стр = Элементы.Номенклатура.ТекущиеДанные;
  57.     ПолучитьДанныеНоменклатура(Стр.номенклатура, Стр.ЕдИзм, Стр.Цена);
  58.     Стр.Количество = 1;
  59.     НоменклатураКоличествоПриИзменении(Элемент);
  60. КонецПроцедуры
  61.  
  62. &НаКлиенте
  63. Процедура НоменклатураКоличествоПриИзменении(Элемент)
  64.     Стр = Элементы.Номенклатура.ТекущиеДанные;
  65.     Если Стр.Количество > 0 Тогда
  66.         Стр.Сумма = Стр.Цена * Стр.количество;
  67.     Иначе
  68.         ДефолтныеЗначенияПриОшибке(Элемент);
  69.     КонецЕсли;
  70. КонецПроцедуры
  71.  
  72. &НаКлиенте
  73. Процедура НоменклатураЦенаПриИзменении(Элемент)
  74.     Стр = Элементы.Номенклатура.ТекущиеДанные;
  75.     Если Стр.Цена > 0 Тогда
  76.         Стр.Сумма = Стр.Цена * Стр.количество;
  77.     Иначе
  78.         ДефолтныеЗначенияПриОшибке(Элемент);
  79.     КонецЕсли;
  80. КонецПроцедуры
  81.  
  82. &НаКлиенте
  83. Процедура НоменклатураСуммаПриИзменении(Элемент)
  84.     Стр = Элементы.Номенклатура.ТекущиеДанные;
  85.     Если Стр.Сумма > 0 Тогда
  86.         Стр.Цена = Стр.Сумма / Стр.Количество;
  87.     Иначе
  88.         ДефолтныеЗначенияПриОшибке(Элемент);
  89.     КонецЕсли
  90. КонецПроцедуры
  91.  
  92. &НаКлиенте
  93. Процедура ДефолтныеЗначенияПриОшибке(Элемент)
  94.     Сообщить("Некоректное значение поля");
  95.     НоменклатураНоменклатураПриИзменении(Элемент);
  96. КонецПроцедуры
  97.  
  98. &НаСервере
  99. Процедура ПолучитьДанныеНоменклатура(Номенклатура, ЕдИзм, Цена)
  100.     Цена = Номенклатура.Цена;
  101.     ЕдИзм = Номенклатура.ЕдиницаИзмерения;
  102. КонецПроцедуры
  103.  
  104.  
  105.  
  106.  
  107.  
Advertisement
Add Comment
Please, Sign In to add comment