1C:Бухгалтерия
1С:CRM ПРОФ, КОРП
1С:ERP Управление предприятием 2
Платформа 1С v8.3
Корп. решения 1С
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. Есть три документа реализация товаров услуг (РТУ). Контрагент для них одиноко с названием - "Покупатель". Сумма документов разные. Пользователь выбирает один из них и на основании этого документа создает документ приходный кассовый ордер (ПКО). В документа ПКО в поле сумма документа для всех трех документов реализации.
Пример -
РТУ номер 1, Сумма документа - 500, Контрагент - Покупатель,
РТУ номер 2, Сумма документа - 550, Контрагент - Покупатель,
РТУ номер 3, Сумма документа - 600, Контрагент - Покупатель,
ПКО номер 1, Сумма документа - 1650 ??
Как решить эту проблему?
Проблема в процедуре ОбработкаЗаполнение(Основание) ?
Спасибо всем за ранее
Пример -
РТУ номер 1, Сумма документа - 500, Контрагент - Покупатель,
РТУ номер 2, Сумма документа - 550, Контрагент - Покупатель,
РТУ номер 3, Сумма документа - 600, Контрагент - Покупатель,
ПКО номер 1, Сумма документа - 1650 ??
Как решить эту проблему?
Проблема в процедуре ОбработкаЗаполнение(Основание) ?
Спасибо всем за ранее
По теме из базы знаний
- Загрузка документов из Excel в 1С: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Товарный чек на основании ПКО в УТ 11.3 и 11.4
- Создание и заполнение документа основания программно из модуля формы
- Загрузка чеков из ФНС в документы 1С:БП, УНФ, ERP, КА и УТ
- Групповое создание реализаций+счф на основании переданного списка с суммами. Номенклатура подбирается случайным образом на указанную сумму
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Процедура ОбработкаЗаполнения(Основание) Экспорт
Если Основание = Неопределено ИЛИ НЕ Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Основание)) Тогда
возврат;
КонецЕсли;
//ДокументОснование = Выборка.Основание;
// Заполним реквизиты из стандартного набора по документу основанию.
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
Если НЕ ЗначениеЗаполнено(Касса) Тогда
оснКасса = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяКасса");
Если оснКасса.Владелец <> Организация Тогда
//ВвестиЗначение(оснКасса, "Укажите кассу поступления денежных средств", "СправочникСсылка.Кассы");
оснКасса = Справочники.Кассы.ПустаяСсылка();
#Если Клиент Тогда
формаВыбораКассы = ПолучитьФорму("ФормаВыбораКассы");
формаВыбораКассы.Организация = Организация;
Если формаВыбораКассы.ОткрытьМодально() = Истина Тогда
оснКасса = формаВыбораКассы.Касса;
КонецЕсли;
#КонецЕсли
КонецЕсли;
Касса = оснКасса;
КонецЕсли;
ВалютаДокумента = ?(НЕ Касса.ВалютаДенежныхСредств.Пустая(),Касса.ВалютаДенежныхСредств,мВалютаРегламентированногоУчета);
СтруктураКурсаДокумента = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента, Дата);
КурсДокумента = СтруктураКурсаДокумента.Курс;
КратностьДокумента = СтруктураКурсаДокумента.Кратность;
ДокументОснование = Основание.Ссылка;
стрСпособЗаполнения = "Не заполнять";
Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя")
ИЛИ ТипЗнч(Основание) = Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда
УправлениеДенежнымиСредствами.ЗаполнитьПриходПоОснованию(
ЭтотОбъект, Основание,
УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(
глЗначениеПеременной("глТекущийПользователь"), "ОсновнойОтветственный"));
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
или ТипЗнч(Основание) = Тип("ДокументСсылка.ОтчетКомиссионераОПродажах") Тогда
СтрокаПлатеж = РасшифровкаПлатежа.Добавить();
ВидОперации = Перечисления.ВидыОперацийПКО.ОплатаПокупателя;
Контрагент = Основание.Контрагент;
СтрокаПлатеж.ДоговорКонтрагента = Основание.ДоговорКонтрагента;
СтрокаПлатеж.СтатьяДвиженияДенежныхСредств = СтрокаПлатеж.ДоговорКонтрагента.ОсновнаяСтатьяДвиженияДенежныхСредств;
СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов, Дата);
СтрокаПлатеж.КурсВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Курс;
СтрокаПлатеж.КратностьВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Кратность;
СтрокаПлатеж.Проект = Основание.Проект;
СтрокаПлатеж.Сделка = Основание.Сделка;
Если ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом Тогда
СтрокаПлатеж.ДокументРасчетовСКонтрагентом = Основание;
Если Основание.Проведен Тогда
стрСпособЗаполнения = "По взаиморасчетам";
Иначе
стрСпособЗаполнения = "По сумме документа";
КонецЕсли;
Иначе
Если Основание.Проведен Тогда
стрСпособЗаполнения = "По взаиморасчетам";
Иначе
стрСпособЗаполнения = "По сумме документа";
КонецЕсли;
КонецЕсли;
СтрокаПлатеж.СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ОсновнаяСтавкаНДС");
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.ВозвратТоваровПоставщику") Тогда
СтрокаПлатеж = РасшифровкаПлатежа.Добавить();
ВидОперации = Перечисления.ВидыОперацийПКО.ВозвратДенежныхСредствПоставщиком;
Контрагент = Основание.Контрагент;
СтрокаПлатеж.ДоговорКонтрагента = Основание.ДоговорКонтрагента;
СтрокаПлатеж.СтатьяДвиженияДенежныхСредств = СтрокаПлатеж.ДоговорКонтрагента.ОсновнаяСтатьяДвиженияДенежныхСредств;
СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов, Дата);
СтрокаПлатеж.КурсВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Курс;
СтрокаПлатеж.КратностьВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Кратность;
СтрокаПлатеж.Проект = Основание.Проект;
СтрокаПлатеж.Сделка = Основание.Сделка;
Если ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом Тогда
СтрокаПлатеж.ДокументРасчетовСКонтрагентом = Основание;
Если Основание.Проведен Тогда
стрСпособЗаполнения = "По взаиморасчетам";
КонецЕсли;
Иначе
Если Основание.Проведен Тогда
стрСпособЗаполнения = "По сумме документа";
КонецЕсли;
КонецЕсли;
СтрокаПлатеж.СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ОсновнаяСтавкаНДС");
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
ЗаполнитьПоРКОУпр();
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах") Тогда
СтрокаПлатеж = РасшифровкаПлатежа.Добавить();
ВидОперации = Перечисления.ВидыОперацийПКО.ПриходДенежныхСредствРозничнаяВыручка;
Если Основание.ВидОперации=Перечисления.ВидыОперацийОтчетОРозничныхПродажах.ОтчетККМОПродажах Тогда
ВидПриемаРозничнойВыручки=Перечисления.ВидПриемаРозничнойВыручки.ИзКассы;
Контрагент = Основание.КассаККМ;
ИначеЕсли Основание.ВидОперации=Перечисления.ВидыОперацийОтчетОРозничныхПродажах.ОтчетНТТОПродажах Тогда
ВидПриемаРозничнойВыручки=Перечисления.ВидПриемаРозничнойВыручки.ИзНТТ;
Контрагент = Основание.Склад;
КонецЕсли;
стрСпособЗаполнения = "По розничной выручке";
СтрокаПлатеж.СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ОсновнаяСтавкаНДС");
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.ДенежныйЧек") Тогда
СтрокаПлатеж = РасшифровкаПлатежа.Добавить();
ВалютаДокумента = Основание.ВалютаДокумента;
Касса = Основание.Касса;
СчетОрганизации = Основание.СчетОрганизации;
Организация = Основание.Организация;
СуммаДокумента = Основание.СуммаДокумента;
ВидОперации = Перечисления.ВидыОперацийПКО.ПолучениеНаличныхДенежныхСредствВБанке;
ДенежныйЧек=Основание.Ссылка;
СтрокаПлатеж.СуммаПлатежа=СуммаДокумента;
СтрокаПлатеж.СтатьяДвиженияДенежныхСредств=Основание.СтатьяДвиженияДенежныхСредств;
ИначеЕсли ТипЗнч(Основание)=Тип("ДокументСсылка.ПланируемоеПоступлениеДенежныхСредств") Тогда
Если Основание.ФормаОплаты=Перечисления.ВидыДенежныхСредств.Безналичные Тогда
Сообщить("Sənədlə nağd olmayan pul vəsaitlərin mədaxili planlaşdırılmışdır.");
Возврат;
КонецЕсли;
ВидОперацииПоступление = Основание.ВидОперации;
СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ОсновнаяСтавкаНДС");
УправлениеДенежнымиСредствами.ОпределитьОперациюПоОснованиюУпр(ВидОперации,ВидОперацииПоступление);
Организация = Основание.Организация;
ВалютаДокумента = Основание.ВалютаДокумента;
Если ЗначениеЗаполнено(Основание.БанковскийСчетКасса) Тогда
Касса = Основание.БанковскийСчетКасса;
КонецЕсли;
Если ВалютаДокумента.Пустая() Тогда
ВалютаДокумента = мВалютаРегламентированногоУчета;
КонецЕсли;
СтруктураКурсаДокумента = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента,);
КурсДокумента = СтруктураКурсаДокумента.Курс;
КратностьДокумента = СтруктураКурсаДокумента.Кратность;
Если ВидОперации=Перечисления.ВидыОперацийПКО.ПриходДенежныхСредствРозничнаяВыручка Тогда
ВидПриемаРозничнойВыручки=Основание.ВидПриемаРозничнойВыручки;
Контрагент=Основание.КассаККМ;
КонецЕсли;
УправлениеДенежнымиСредствами.ЗаполнитьПоПланируемомуПоступлениюУпр(РасшифровкаПлатежа,
Основание,
СтавкаНДС,
ВалютаДокумента,
КурсДокумента,
КратностьДокумента,
ВидОперации);
СуммаДокумента=РасшифровкаПлатежа.Итог("СуммаПлатежа");
КонецЕсли;
ПроверкаКурсовВалют(СтрокаПлатеж);
Если стрСпособЗаполнения = "По взаиморасчетам" Тогда
УправлениеДенежнымиСредствами.ЗаполнитьПоВзаиморасчетамУпр(ВалютаДокумента,КурсДокумента,КратностьДокумента,СтрокаПлатеж,1);
СуммаДокумента=СтрокаПлатеж.СуммаПлатежа;
УправлениеДенежнымиСредствами.ПересчитатьСуммуНДС(СтрокаПлатеж);
ИначеЕсли стрСпособЗаполнения = "По взаиморасчетам с подотчетным лицом" Тогда
ЗаполнитьПоВзаиморасчетамСПодотчетнымЛицомУпр(СтрокаПлатеж);
ИначеЕсли стрСпособЗаполнения = "По розничной выручке" Тогда
ЗаполнитьПоРозничнойВыручкеУпр(СтрокаПлатеж);
УправлениеДенежнымиСредствами.ПересчитатьСуммуНДС(СтрокаПлатеж);
ИначеЕсли стрСпособЗаполнения = "По сумме документа" Тогда
ЗаполнитьПоСуммеДокументаУпр(СтрокаПлатеж);
УправлениеДенежнымиСредствами.ПересчитатьСуммуНДС(СтрокаПлатеж);
КонецЕсли;
ЕстьРасчетыСКонтрагентами=УправлениеДенежнымиСредствами.ЕстьРасчетыСКонтрагентами(ВидОперации);
ЕстьРасчетыПоКредитам=УправлениеДенежнымиСредствами.ЕстьРасчетыПоКредитам(ВидОперации);
ОтраженоВОперУчете=Истина;
Оплачено=Истина;
ОтражатьВУправленческомУчете=Истина;
Если (ВидОперации=Перечисления.ВидыОперацийПКО.ВозвратДенежныхСредствПодотчетником ) И
НЕ ВалютаВзаиморасчетовРаботника = ВалютаДокумента Тогда
ОтражатьВБухгалтерскомУчете=Ложь;
ОтражатьВНалоговомУчете=Ложь;
Иначе
ОтражатьВБухгалтерскомУчете=Истина;
КонецЕсли;
Если ПринятоОт="" И ЗначениеЗаполнено(Контрагент) Тогда
Если ЕстьРасчетыСКонтрагентами ИЛИ ЕстьРасчетыПоКредитам Тогда
ПринятоОт =?(Контрагент.НаименованиеПолное="",Контрагент.Наименование, Контрагент.НаименованиеПолное);
ИначеЕсли ВидОперации=Перечисления.ВидыОперацийПКО.ВозвратДенежныхСредствПодотчетником Тогда
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ФИОФизЛицСрезПоследних.Фамилия КАК Фамилия,
| ФИОФизЛицСрезПоследних.Имя КАК Имя,
| ФИОФизЛицСрезПоследних.Отчество КАК Отчество
|ИЗ
| РегистрСведений.ФИОФизЛиц.СрезПоследних(&Дата, ФизЛицо=&ФизЛицо) КАК ФИОФизЛицСрезПоследних";
Запрос.УстановитьПараметр("Дата",Дата);
Запрос.УстановитьПараметр("ФизЛицо",Контрагент);
Результат=Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
ПринятоОт = ?(НЕ ПустаяСтрока(Результат.Фамилия),
Результат.Фамилия + ?(НЕ ПустаяСтрока(Результат.Имя)," " + Результат.Имя + " " + ?(НЕ ПустаяСтрока(Результат.Отчество),Результат.Отчество, ""), ""),"");
КонецЕсли;
Если ЗначениеЗаполнено(РасчетныйДокумент) Тогда
ЭтотОбъект.Основание=Лев(Строка(РасчетныйДокумент),Найти(Строка(РасчетныйДокумент),Строка(РасчетныйДокумент.Дата))-1)+Формат(РасчетныйДокумент.Дата,"ДФ=dd.MM.yyyy");
КонецЕсли;
КонецЕсли;
КонецЕсли;
Ответственный = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойОтветственный");
ЗаполнитьРеквизитыПоУмолчаниюУпр();
КонецПроцедуры // ОбработкаЗаполнения()
Показать
Проблема в этом коде
подставьте после
и будет вам счастье ...
Если ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом Тогда
СтрокаПлатеж.ДокументРасчетовСКонтрагентом = Основание;
Если Основание.Проведен Тогда
стрСпособЗаполнения = "По взаиморасчетам";
Иначе
стрСпособЗаполнения = "По сумме документа";
КонецЕсли;
Иначе
Если Основание.Проведен Тогда
стрСпособЗаполнения = "По взаиморасчетам";
Иначе
стрСпособЗаполнения = "По сумме документа";
КонецЕсли;
КонецЕсли;
Показатьподставьте после
//++
стрСпособЗаполнения = "По сумме документа";
//--
и будет вам счастье ...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот