Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 08:52

какие комментарии можно написать к данному коду?

Автор grsory, 11 апр 2023, 15:36

0 Пользователей и 1 гость просматривают эту тему.

grsory

&НаКлиенте
Процедура ПриОткрытии(Отказ)
   Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
   Объект.СтатусЗаказа=ПредопределенноеЗначение("Перечисление.СтатусЗаказа.Принят");
   КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПредоплатаПриИзменении(Элемент)
   Если Объект.Предоплата>0 И Объект.Предоплата<Объект.СуммаПоДокументу Тогда
   Объект.СтатусЗаказа=ПредопределенноеЗначение("Перечисление.СтатусЗаказа.Утвержден");
   ИначеЕсли Объект.Предоплата=Объект.СуммаПоДокументу Тогда
   Объект.СтатусЗаказа=ПредопределенноеЗначение("Перечисление.СтатусЗаказа.ЗавершенИОплачен");
   КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура МонтажникПриИзменении(Элемент)
   Если ЗначениеЗаполнено(Объект.Монтажник) Тогда
   Объект.СтатусЗаказа=ПредопределенноеЗначение("Перечисление.СтатусЗаказа.ВРаботе");
   КонецЕсли;
КонецПроцедуры


2.   Код проценты и сумма по документу:

&НаКлиенте
Процедура СписокОборудованияПриИзменении(Элемент)
   Объект.СтоимостьУслуг=Объект.СписокОборудования.Итог("Сумма")*0.8;
   Объект.СуммаПоДокументу=Объект.СписокОборудования.Итог("Сумма")+Объект.СписокМатериалов.Итог("Сумма")+Объект.СтоимостьУслуг;
КонецПроцедуры

3.   Код сумма в ТЧ и в реквизитах документа Смета:

&НаКлиенте
Процедура СписокОборудованияКоличествоПриИзменении(Элемент)
   ТЧ=Элементы.СписокОборудования.ТекущиеДанные;
   ТЧ.Сумма=ТЧ.Количество*ТЧ.Цена;
КонецПроцедуры

&НаКлиенте
Процедура СписокОборудованияЦенаПриИзменении(Элемент)
   ТЧ=Элементы.СписокОборудования.ТекущиеДанные;
   ТЧ.Сумма=ТЧ.Количество*ТЧ.Цена;
КонецПроцедуры

&НаКлиенте
Процедура СписокМатериаловКоличествоПриИзменении(Элемент)
   ТЧ=Элементы.СписокМатериалов.ТекущиеДанные;
   ТЧ.Сумма=ТЧ.Количество*ТЧ.Цена;
КонецПроцедуры

&НаКлиенте
Процедура СписокМатериаловЦенаПриИзменении(Элемент)
   ТЧ=Элементы.СписокМатериалов.ТекущиеДанные;
   ТЧ.Сумма=ТЧ.Количество*ТЧ.Цена;
КонецПроцедуры

&НаКлиенте
Процедура СписокМатериаловПриИзменении(Элемент)
   Объект.СуммаПоДокументу=Объект.СписокМатериалов.Итог("Сумма")+Объект.СписокОборудования.Итог("Сумма")+Объект.СтоимостьУслуг;
КонецПроцедуры

4.   Код на кнопку «Отменить»

 &НаКлиенте
Процедура Отменить(Команда)
   Объект.СтатусЗаказа=ПредопределенноеЗначение("Перечисление.СтатусЗаказа.Отменен");
КонецПроцедуры
&НаКлиенте
Процедура КартинкаНажатие(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка=Ложь;
   ДиалогВыбора=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогВыбора.МножественныйВыбор=Ложь;
   ДиалогВыбора.Фильтр="Все картинки (*.bmp;*.png;*.jpg;)|*.bmp;*.png;*.jpg;|)";
   ДиалогВыбора.Заголовок="Выберите фото сотрудника";
   Если ДиалогВыбора.Выбрать() Тогда
      Картинка = "";
   ПоместитьФайл(Картинка,ДиалогВыбора.ПолноеИмяФайла,,Ложь,УникальныйИдентификатор);
      КонецЕсли;
   КонецПроцедуры
   
   &НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   Если ЭтоАдресВременногоХранилища(Картинка) Тогда
      ТекущийОбъект.Фото=Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Картинка));
      КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Картинка=ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Фото");
КонецПроцедуры

2.   Код на переход с одной формы на другую:

&НаКлиенте
Процедура Смета(Команда)
   ПараметрыФормы = Новый Структура("Отбор", Новый Структура("ЗаказыКлиентов"));
ОткрытьФорму("Документ.Смета.ФормаСписка", ПараметрыФормы,, Истина);
   ОбновитьИнтерфейс();
КонецПроцедуры

3.   Автоматическое заполнение цены на материалы и оборудование из регистра сведений:

&НаКлиенте
Процедура СписокОборудованияНаименованиеПриИзменении(Элемент)
   СтрокаТЧ=Элементы.СписокОборудования.ТекущиеДанные;
   СтрокаТЧ.Цена=ПолучитьЦену1(СтрокаТЧ.Наименование);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьЦену1(Наименование)
   ЦенаОтбор=Новый Структура;
   ЦенаОтбор.Вставить("Наименование",Наименование);
   Данные= РегистрыСведений.ЦеныОборудования.ПолучитьПоследнее(,ЦенаОтбор);
   Возврат Данные.Цена;
КонецФункции

4.   Код на добавление цены в регистр сведений из документа:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   //Регистр ЦеныОборудования
   Движения.ЦеныОборудования.Записывать=Истина;
   Для Каждого ТекСтрокаСостав Из СписокОборудования Цикл
      Движение=Движения.ЦеныОборудования.Добавить();
      Движение.Период=Дата;
      Движение.Наименование=ТекСтрокаСостав.Наименование;
      Движение.Цена=ТекСтрокаСостав.Цена*1.5;
   КонецЦикла;
КонецПроцедуры

5.   Код на историю смены статуса заказа:
//Добавлять в обработку проведения
Запрос3 = Новый Запрос;
   Запрос3.Текст=
   "ВЫБРАТЬ
   |   ИсторияСтатусовСрезПоследних.Статус КАК Статус
   |ИЗ
   |   РегистрСведений.ИсторияСтатусов.СрезПоследних(, ) КАК ИсторияСтатусовСрезПоследних
   |ГДЕ
   |   ИсторияСтатусовСрезПоследних.Заказ = &Заказ";
   Запрос3.УстановитьПараметр("Заказ", Ссылка);
   
   РезультатЗапроса = Запрос3.Выполнить();
       Если РезультатЗапроса.Пустой() Тогда
       ЗаписатьСтатусЗаказа()
   Иначе
       Выборка = РезультатЗапроса.Выбрать();
       Выборка.Следующий();
       Если Выборка.Статус <> СтатусЗаказа Тогда
           ЗаписатьСтатусЗаказа();
       КонецЕсли;
   КонецЕсли;
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   Запись = РегистрыСведений.ИсторияСтатусов.СоздатьМенеджерЗаписи();
    Запись.Период = ТекущаяДата();
    Запись.Заказ = Ссылка;
    Запись.Статус = СтатусЗаказа;
    Запись.Записать();
КонецПроцедуры

Процедура ЗаписатьСтатусЗаказа();
    Запись = РегистрыСведений.ИсторияСтатусов.СоздатьМенеджерЗаписи();
    Запись.Период = ТекущаяДата();
    Запись.Заказ = Ссылка;
    Запись.Статус = СтатусЗаказа;
    Запись.Записать();
КонецПроцедуры
&НаСервере
Процедура Команда1НаСервере(Контрагенты)
Для каждого Contragent из Контрагенты.Contragent Цикл
Нов = Справочники.Номенклатура.СоздатьЭлемент();
Нов.Имя = Contragent.Name;
Строки = СтрРазделить(Contragent.UNP, ".");
День = Строки[0];
Месяц = Строки[1];
Год = Строки[2];
Нов.УНП = Дата(Год,Месяц,День);
Нов.Записать();
КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
   ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл("F:/12.json");
Контрагенты = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Команда1НаСервере(Контрагенты);
КонецПроцедуры
&НаКлиенте
Процедура XLS(Команда) 
   ВыборФайла=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ВыборФайла.МножественныйВыбор=Ложь;
   ВыборФайла.Фильтр="Табличные документы *.xls| *.xls";
   ВыборФайла.Показать(Новый ОписаниеОповещения("XLSНаСервере", ЭтотОбъект,Новый Структура));
КонецПроцедуры

&НаСервере
Процедура XLSНаСервере(Результат, ДопПараметр) Экспорт
   //Проверка выбора файла
   Если НЕ(Результат=Неопределено) Тогда//ФАЙЛ ВЫБРАН
   ИмяФайла=Результат[0];
Иначе
   Сообщить("Файл не выбран!");
   Возврат;
КонецЕсли;
ТабДок=Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла);
//читаем строки с данными
Для Строка=2 По ТабДок.ВысотаТаблицы Цикл
   ЭлементПоставщик=Справочники.Поставщики.СоздатьЭлемент();
   ЭлементПоставщик.Наименование=ТабДок.Область(Строка,1).Текст;
   ЭлементПоставщик.Записать();
   Сообщить("В справочник Поставщики добавлена запись "+ЭлементПоставщик.Наименование);
КонецЦикла; 
КонецПроцедуры

Теги:

Похожие темы (4)

Рейтинг@Mail.ru

Поиск