Это модуль документа
перем Обучение,Общежитие;
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("50.1",ПланыСчетов.Основной);
Операция.Дебет.ДвиженияДенежныхСредств = ДвиженияДенежныхСредств;
Если ВидОплаты = Перечисление.ВидОплаты.Обучение Тогда
Операция.Кредит.Счет = СчетПоКоду("62.1",ПланыСчетов.Основной);
ИначеЕсли ВидОплаты = Перечисление.ВидОплаты.Общежитие Тогда
Операция.Кредит.Счет = СчетПоКоду("76.6",ПланыСчетов.Основной);
КонецЕсли;
// Операция.Кредит.Счет = СчетПоКоду("62.1",ПланыСчетов.Основной);
Операция.Кредит.Контрагенты = Студент;
Операция.Кредит.Договоры = Студент.ОсновнойДоговор;
Операция.Сумма = Сумма;
КонецЦикла;
Операция.СуммаОперации = Итог("Сумма");
Операция.Записать();
КонецПроцедуры
А это модуль формы этого же документа
Перем СписокДействий;
//*****************************************************************************
// Подбор()
//
// Вызывается из формул элементов диалога:
// Кнопка "КнопкаПодбор".
//
// Описание:
// Открывает форму подбора контрагентов.
//
Процедура Подбор()
ОткрытьПодбор("Справочник.Контрагенты", "ДляПодбора");
КонецПроцедуры // Подбор()
//*****************************************************************************
// Предопределенная процедура
//
Процедура ОбработкаПодбора(ВыбрКонтрагент, Конт)
Квит ="";
Если ВвестиСтроку(Квит, "Введите № квитанции об оплате", 6,,10 ) = 0 Тогда
Возврат;
ИначеЕсли Квит = "" Тогда
Возврат;
КонецЕсли;
Кол = 1;
Если ВвестиЧисло(Кол, "Введите сумму", 14, 2,10) = 0 Тогда
Возврат;
ИначеЕсли Кол = 0 Тогда
Возврат;
КонецЕсли;
НоваяСтрока();
Студент = ВыбрКонтрагент;
Сумма = Кол;
НомерКвит=Квит;
АктивизироватьСтроку();
КонецПроцедуры // ОбработкаПодбора()
//__________________________________________________________ ___________________
Процедура пко()
Если ТекущийДокумент().Выбран() = 0 Тогда
Если Вопрос("Нельзя вводить документ на основании не записанного документа!"+РазделительСтрок+
"Записать документ?","Да+Нет")="Да" Тогда
Если Записать() = 0 Тогда
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
КонецЕсли;
пко_нов=СоздатьОбъект("Документ.ПриходныйОрдер");
Если ЯвляетсяОснованием.Выбран()=0 Тогда
пко_нов.Новый();
пко_нов.ДатаДок=ДатаДок;
иначе
пко_нов.НайтиДокумент(ЯвляетсяОснованием);
конецесли;
пко_нов.ДвижениеДенежныхСредств=ДвиженияДенежныхСредств;
пко_нов.УказатьНДС = 0;
пко_нов.УчитыватьНП = 0;
пко_нов.УказатьНП = 0;
пко_нов.ФормироватьПроводки = 0;
пко_нов.Валютный = 1;
пко_нов.Сумма = Итог("Сумма");
пко_нов.КоррСчет = СчетПоКоду("62.1");
сч=0;
ном="";
сз=СоздатьОбъект("СписокЗначений");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если сч=0 Тогда
ном=ном+сокрлп(НомерКвит);
иначе
ном=ном+", "+сокрлп(НомерКвит);
КонецЕсли;
сч=1;
КонецЦикла;
пко_нов.ПринятоОт="по квитанциям "+ном;
Если ВидОплаты=Перечисление.ВидОплаты.Обучение Тогда
пко_нов.Основание= "за обучение";
иначеЕсли ВидОплаты=Перечисление.ВидОплаты.Общежитие Тогда
пко_нов.Основание= "за общежитие";
КонецЕсли;
пко_нов.Приложение="квитанции №№ "+ном;
пко_нов.Записать();
ОткрытьФорму(пко_нов.ТекущийДокумент(),,0);
ЯвляетсяОснованием=пко_нов.ТекущийДокумент();
Записать();
//Если ЯвляетсяОснованием.Выбран()=1 Тогда
// сообщить("К документу уже есть ПКО № "+ЯвляетсяОснованием);
// ОткрытьФорму(ЯвляетсяОснованием.ТекущийДокумент(),,0);
//иначе
//
// пко_нов.Новый();
// пко_нов.ДатаДок=ДатаДок;
// пко_нов.ДвижениеДенежныхСредств=ДвиженияДенежныхСредств;
// пко_нов.УказатьНДС = 0;
// пко_нов.УчитыватьНП = 0;
// пко_нов.УказатьНП = 0;
// пко_нов.ФормироватьПроводки = 0;
// пко_нов.Валютный = 1;
// пко_нов.Сумма = Итог("Сумма");
// пко_нов.КоррСчет = СчетПоКоду("62.1");
// сч=0;
// ном="";
// сз=СоздатьОбъект("СписокЗначений");
// ВыбратьСтроки();
// Пока ПолучитьСтроку() = 1 Цикл
// Если сч=0 Тогда
// ном=ном+НомерКвит;
// иначе
// ном=ном+", "+НомерКвит;
// КонецЕсли;
// сч=1;
// КонецЦикла;
// пко_нов.ПринятоОт="по квитанциям "+ном;
// Если ВидОплаты=Перечисление.ВидОплаты.Обучение Тогда
// пко_нов.Основание= "за обучение";
// иначеЕсли ВидОплаты=Перечисление.ВидОплаты.Общежитие Тогда
// пко_нов.Основание= "за общежитие";
// КонецЕсли;
//
// пко_нов.Приложение="квитанции №№ "+ном;
// пко_нов.Записать();
// ОткрытьФорму(пко_нов.ТекущийДокумент(),,0);
// //ОткрытьФорму("Документ.ПриходныйОрдер",,ТекущийДокумент());
// ЯвляетсяОснованием=пко_нов.ТекущийДокумент();
//КонецЕсли;
//Записать();
КонецПроцедуры //пко()
Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1);
КонецПроцедуры
Процедура ПриСменеВидаОплаты()
Если ВидОплаты.Выбран() = 0 Тогда
ВидОплаты = Перечисление.ВидОплаты.Обучение;
КонецЕсли;
КонецПроцедуры
//__________________________________________________________ ___________________
Процедура ЗаполнитьТаблицуПоПроводкам()
студ=СоздатьОбъект("ТаблицаЗначений");
студ.НоваяКолонка("Студент_","Справочник.Контрагенты");
ПроводкиДокумента = СоздатьОбъект("Операция");
ПроводкиДокумента.НайтиОперацию(ТекущийДокумент());
ПроводкиДокумента.ВыбратьПроводки();
Пока ПроводкиДокумента.ПолучитьПроводку()=1 Цикл
Если (ПроводкиДокумента.Кредит.Счет = СчетПоКоду("62.1")) или (ПроводкиДокумента.Кредит.Счет = СчетПоКоду("76.6")) Тогда
студ.НоваяСтрока();
студ.Студент_=ПроводкиДокумента.Кредит.Контрагенты;
КонецЕсли;
КонецЦикла;
ном_стр=0;
выбратьСтроки();
Пока получитьстроку()=1 Цикл
ном_стр=ном_стр+1;
студ.ПолучитьСтрокуПоНомеру(ном_стр);
Студент=студ.Студент_;
КонецЦикла;
КонецПроцедуры //ЗаполнитьТаблицуПоПроводкам
//______________________________________________________
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Отчет о движениях документа");
СписокДействий.ДобавитьЗначение("Структура подчиненности");
СписокДействий.ДобавитьЗначение("Ввести на основании");
СписокДействий.ДобавитьЗначение("Перейти в журнал");
Это модули в 1С7.7.
перем Обучение,Общежитие;
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("50.1",ПланыСчетов.Основной);
Операция.Дебет.ДвиженияДенежныхСредств = ДвиженияДенежныхСредств;
Если ВидОплаты = Перечисление.ВидОплаты.Обучение Тогда
Операция.Кредит.Счет = СчетПоКоду("62.1",ПланыСчетов.Основной);
ИначеЕсли ВидОплаты = Перечисление.ВидОплаты.Общежитие Тогда
Операция.Кредит.Счет = СчетПоКоду("76.6",ПланыСчетов.Основной);
КонецЕсли;
// Операция.Кредит.Счет = СчетПоКоду("62.1",ПланыСчетов.Основной);
Операция.Кредит.Контрагенты = Студент;
Операция.Кредит.Договоры = Студент.ОсновнойДоговор;
Операция.Сумма = Сумма;
КонецЦикла;
Операция.СуммаОперации = Итог("Сумма");
Операция.Записать();
КонецПроцедуры
А это модуль формы этого же документа
Перем СписокДействий;
//*****************************************************************************
// Подбор()
//
// Вызывается из формул элементов диалога:
// Кнопка "КнопкаПодбор".
//
// Описание:
// Открывает форму подбора контрагентов.
//
Процедура Подбор()
ОткрытьПодбор("Справочник.Контрагенты", "ДляПодбора");
КонецПроцедуры // Подбор()
//*****************************************************************************
// Предопределенная процедура
//
Процедура ОбработкаПодбора(ВыбрКонтрагент, Конт)
Квит ="";
Если ВвестиСтроку(Квит, "Введите № квитанции об оплате", 6,,10 ) = 0 Тогда
Возврат;
ИначеЕсли Квит = "" Тогда
Возврат;
КонецЕсли;
Кол = 1;
Если ВвестиЧисло(Кол, "Введите сумму", 14, 2,10) = 0 Тогда
Возврат;
ИначеЕсли Кол = 0 Тогда
Возврат;
КонецЕсли;
НоваяСтрока();
Студент = ВыбрКонтрагент;
Сумма = Кол;
НомерКвит=Квит;
АктивизироватьСтроку();
КонецПроцедуры // ОбработкаПодбора()
//__________________________________________________________
Процедура пко()
Если ТекущийДокумент().Выбран() = 0 Тогда
Если Вопрос("Нельзя вводить документ на основании не записанного документа!"+РазделительСтрок+
"Записать документ?","Да+Нет")="Да" Тогда
Если Записать() = 0 Тогда
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
КонецЕсли;
пко_нов=СоздатьОбъект("Документ.ПриходныйОрдер");
Если ЯвляетсяОснованием.Выбран()=0 Тогда
пко_нов.Новый();
пко_нов.ДатаДок=ДатаДок;
иначе
пко_нов.НайтиДокумент(ЯвляетсяОснованием);
конецесли;
пко_нов.ДвижениеДенежныхСредств=ДвиженияДенежныхСредств;
пко_нов.УказатьНДС = 0;
пко_нов.УчитыватьНП = 0;
пко_нов.УказатьНП = 0;
пко_нов.ФормироватьПроводки = 0;
пко_нов.Валютный = 1;
пко_нов.Сумма = Итог("Сумма");
пко_нов.КоррСчет = СчетПоКоду("62.1");
сч=0;
ном="";
сз=СоздатьОбъект("СписокЗначений");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если сч=0 Тогда
ном=ном+сокрлп(НомерКвит);
иначе
ном=ном+", "+сокрлп(НомерКвит);
КонецЕсли;
сч=1;
КонецЦикла;
пко_нов.ПринятоОт="по квитанциям "+ном;
Если ВидОплаты=Перечисление.ВидОплаты.Обучение Тогда
пко_нов.Основание= "за обучение";
иначеЕсли ВидОплаты=Перечисление.ВидОплаты.Общежитие Тогда
пко_нов.Основание= "за общежитие";
КонецЕсли;
пко_нов.Приложение="квитанции №№ "+ном;
пко_нов.Записать();
ОткрытьФорму(пко_нов.ТекущийДокумент(),,0);
ЯвляетсяОснованием=пко_нов.ТекущийДокумент();
Записать();
//Если ЯвляетсяОснованием.Выбран()=1 Тогда
// сообщить("К документу уже есть ПКО № "+ЯвляетсяОснованием);
// ОткрытьФорму(ЯвляетсяОснованием.ТекущийДокумент(),,0);
//иначе
//
// пко_нов.Новый();
// пко_нов.ДатаДок=ДатаДок;
// пко_нов.ДвижениеДенежныхСредств=ДвиженияДенежныхСредств;
// пко_нов.УказатьНДС = 0;
// пко_нов.УчитыватьНП = 0;
// пко_нов.УказатьНП = 0;
// пко_нов.ФормироватьПроводки = 0;
// пко_нов.Валютный = 1;
// пко_нов.Сумма = Итог("Сумма");
// пко_нов.КоррСчет = СчетПоКоду("62.1");
// сч=0;
// ном="";
// сз=СоздатьОбъект("СписокЗначений");
// ВыбратьСтроки();
// Пока ПолучитьСтроку() = 1 Цикл
// Если сч=0 Тогда
// ном=ном+НомерКвит;
// иначе
// ном=ном+", "+НомерКвит;
// КонецЕсли;
// сч=1;
// КонецЦикла;
// пко_нов.ПринятоОт="по квитанциям "+ном;
// Если ВидОплаты=Перечисление.ВидОплаты.Обучение Тогда
// пко_нов.Основание= "за обучение";
// иначеЕсли ВидОплаты=Перечисление.ВидОплаты.Общежитие Тогда
// пко_нов.Основание= "за общежитие";
// КонецЕсли;
//
// пко_нов.Приложение="квитанции №№ "+ном;
// пко_нов.Записать();
// ОткрытьФорму(пко_нов.ТекущийДокумент(),,0);
// //ОткрытьФорму("Документ.ПриходныйОрдер",,ТекущийДокумент());
// ЯвляетсяОснованием=пко_нов.ТекущийДокумент();
//КонецЕсли;
//Записать();
КонецПроцедуры //пко()
Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1);
КонецПроцедуры
Процедура ПриСменеВидаОплаты()
Если ВидОплаты.Выбран() = 0 Тогда
ВидОплаты = Перечисление.ВидОплаты.Обучение;
КонецЕсли;
КонецПроцедуры
//__________________________________________________________
Процедура ЗаполнитьТаблицуПоПроводкам()
студ=СоздатьОбъект("ТаблицаЗначений");
студ.НоваяКолонка("Студент_","Справочник.Контрагенты");
ПроводкиДокумента = СоздатьОбъект("Операция");
ПроводкиДокумента.НайтиОперацию(ТекущийДокумент());
ПроводкиДокумента.ВыбратьПроводки();
Пока ПроводкиДокумента.ПолучитьПроводку()=1 Цикл
Если (ПроводкиДокумента.Кредит.Счет = СчетПоКоду("62.1")) или (ПроводкиДокумента.Кредит.Счет = СчетПоКоду("76.6")) Тогда
студ.НоваяСтрока();
студ.Студент_=ПроводкиДокумента.Кредит.Контрагенты;
КонецЕсли;
КонецЦикла;
ном_стр=0;
выбратьСтроки();
Пока получитьстроку()=1 Цикл
ном_стр=ном_стр+1;
студ.ПолучитьСтрокуПоНомеру(ном_стр);
Студент=студ.Студент_;
КонецЦикла;
КонецПроцедуры //ЗаполнитьТаблицуПоПроводкам
//______________________________________________________
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Отчет о движениях документа");
СписокДействий.ДобавитьЗначение("Структура подчиненности");
СписокДействий.ДобавитьЗначение("Ввести на основании");
СписокДействий.ДобавитьЗначение("Перейти в журнал");
Это модули в 1С7.7.
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот