Дипломная работа: Автоматизация расчетов с поставщиками и подрядчиками в ООО «Городской супермаркет»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
97
Сообщить("Акт сверки не может быть отправлен контрагенту " +
СтрокаТЧ.Контрагент + ", т.к. для него не указан адрес электронной почты!");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СогласованиеАктовСверки
&НаКлиенте
Процедура СогласоватьСверку(Команда)
Если НЕ ПроверитьНаличиеВыбранныхЭлементов() Тогда
Сообщить("Перед согласованием необходимо указать акты сверки!");
Возврат;
КонецЕсли;
КоличествоДокументов = СогласоватьСверкуНаСервере();
Сообщить("Количество успешно согласованных актов сверки - " + КоличествоДокументов);
КонецПроцедуры
&НаСервере
Функция СогласоватьСверкуНаСервере()
КоличествоДокументов = 0;
Для каждого СтрокаТЧ Из Объект.АктыСверки Цикл
Если СтрокаТЧ.Пометка И НЕ СтрокаТЧ.АктСверки.СверкаСогласована Тогда
АктСверки = СтрокаТЧ.АктСверки.ПолучитьОбъект();
АктСверки.СверкаСогласована = Истина;
Попытка
98
АктСверки.Записать(РежимЗаписиДокумента.Проведение);
КоличествоДокументов = КоличествоДокументов + 1;
СтрокаТЧ.Согласован = Истина;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
Возврат КоличествоДокументов;
КонецФункции
#КонецОбласти
#Область ЗаполнениеАктовСверкиПоОтбору
&НаКлиенте
Процедура ЗаполнитьАктыСверкиПоОтбору(Команда)
// Проверка заполнения данных
СоответствиеОшибок = Новый Соответствие;
Если НЕ ЗначениеЗаполнено(Объект.Период) Тогда
СоответствиеОшибок.Вставить("Объект.Период", "Перед заполнением актов сверки
необходимо указать период!");
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
СоответствиеОшибок.Вставить("Объект.Организация", "Перед заполнением актов
сверки необходимо указать организации!");
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.СписокКонтрагентов) Тогда
99
СоответствиеОшибок.Вставить("Объект.СписокКонтрагентов", "Перед заполнением
актов сверки необходимо указать контрагентов!");
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.Валюта) Тогда
СоответствиеОшибок.Вставить("Объект.Валюта", "Перед заполнением актов сверки
необходимо указать валюту сверки!");
КонецЕсли;
Если Объект.ПоСчетам И НЕ ЗначениеЗаполнено(Объект.СписокСчетов) Тогда
СоответствиеОшибок.Вставить("Объект.СписокСчетов", "Перед заполнением актов
сверки необходимо выбрать счет!");
КонецЕсли;
Если СоответствиеОшибок.Количество() > 0 Тогда
Для каждого ЭлементСоответствия Из СоответствиеОшибок Цикл
СообщитьОбОшибке(ЭлементСоответствия.Значение,
ЭлементСоответствия.Ключ);
КонецЦикла;
Возврат;
КонецЕсли;
ЗаполнитьАктыСверкиПоОтборуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьАктыСверкиПоОтборуНаСервере()
Объект.АктыСверки.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| АктСверкиВзаиморасчетов.Ссылка
100
|ИЗ
| Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
|ГДЕ
| НЕ АктСверкиВзаиморасчетов.ПометкаУдаления
| И АктСверкиВзаиморасчетов.Организация В(&Организация)
| И АктСверкиВзаиморасчетов.Контрагент В(&Контрагент)
| И АктСверкиВзаиморасчетов.ДатаНачала = &ДатаНачала
| И АктСверкиВзаиморасчетов.ДатаОкончания = &ДатаОкончания";
Если Объект.ТолькоНеСогласованные Тогда
Запрос.Текст = Запрос.Текст + "
| И НЕ АктСверкиВзаиморасчетов.СверкаСогласована";
КонецЕсли;
Если Объект.ТолькоСогласованные Тогда
Запрос.Текст = Запрос.Текст + "
| И АктСверкиВзаиморасчетов.СверкаСогласована";
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Валюта) Тогда
Запрос.Текст = Запрос.Текст + "
| И АктСверкиВзаиморасчетов.ВалютаДокумента = &Валюта";
КонецЕсли;
Если Объект.ПоСчетам И Объект.СписокСчетов.Количество() Тогда
Запрос.Текст = Запрос.Текст + "
| И АктСверкиВзаиморасчетов.СписокСчетов.Счет В (&СписокСчетов)";
КонецЕсли;
// Отбор по договорам
ОтобратьАктыСверкиПоДоговорам(Объект.ПоДоговорам, Объект.СписокДоговоров, Запрос);
// Отбор по видам договоров
ОтобратьАктыСверкиПоДоговорам(Объект.ПоВидамДоговоров,
Объект.СписокВидовДоговоров, Запрос);
101
Запрос.Текст = Запрос.Текст + "
|УПОРЯДОЧИТЬ ПО
| АктСверкиВзаиморасчетов.Организация,
| АктСверкиВзаиморасчетов.Контрагент";
Запрос.УстановитьПараметр("ДатаНачала", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", НачалоДня(Объект.Период.ДатаОкончания));
Запрос.УстановитьПараметр("Контрагент", Объект.СписокКонтрагентов);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("Валюта", Объект.Валюта);
Запрос.УстановитьПараметр("СписокСчетов", Объект.СписокСчетов);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СтрокаТЧ = Объект.АктыСверки.Добавить();
СтрокаТЧ.АктСверки = ВыборкаДетальныеЗаписи.Ссылка;
ЗаполнитьСтрокуТЧ(СтрокаТЧ.НомерСтроки);
КонецЦикла;
Если НЕ ВыборкаДетальныеЗаписи.Количество() Тогда
Сообщить("По выбранным параметрам отбора акты сверки не найдены. Попробуйте
изменить отбор.");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСписокДоговоров()
// Проверяем, заполнены ли списки для выбранных отборов по договорам и видам договоров
Если НЕ (Объект.ПоДоговорам И Объект.СписокДоговоров.Количество()) И
Источник: https://baza.diplomsite.ru/previewfile/581