Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Доработка правил обмена

Доработка правил обмена
Я
   bezdarOREnburgski
 
01.09.21 - 10:06
Здравствуйте всем. Прошу помощи.
Есть правила обмена между 1с Больничная аптека и БГУ ред. 1.0. Редактирую документ МЗ_покупка
В аптеке баланс имеет иерархию (ОМС стационар, ОМС амбулатория и т.д), а в БГУ только омс и омс ковид.
Соответственно я хочу сделать условие чтобы любой вид ОМС из аптеки в бгу переходил как ОМС. т.е
ОМС амбулатория - ОМС
ОМС стационар - ОМС
ОМС Covid - ОМС ковид

Ниже код правил
   bezdarOREnburgski
 
1 - 01.09.21 - 10:06
// Удаление дублей в режиме выгрузки ВыгружатьВручную

ОбъектДляУдаления = Источник;
Выполнить(Алгоритмы.ЗаписатьУдалениеОбъекта);

// Получение исходных данных документа

ЗапросДанныхДокумента = Новый Запрос("
|ВЫБРАТЬ
|    ВЫБОР
|        КОГДА &ВыгрузитьГруппуБухгалтерскогоУчета
|            ТОГДА ТаблицаТовары.Номенклатура.ВидНоменклатуры.ГруппаБухгалтерскогоУчета
|        ИНАЧЕ ТаблицаТовары.Номенклатура
|    КОНЕЦ                                       КАК Номенклатура,
|    ТаблицаТовары.Коэффициент                   КАК Коэффициент,
|    ТаблицаТовары.КоличествоВЕдиницахИзмерения  КАК КоличествоМест,
|    ВЫБОР
|        КОГДА &ВыгрузитьСтоимость
|            ТОГДА ТаблицаТовары.СуммаСНДС - &ПринятьНДСКВычету * ТаблицаТовары.СуммаНДС
|        ИНАЧЕ ТаблицаТовары.Количество
|    КОНЕЦ                                       КАК Количество,
|    ТаблицаТовары.Сумма                         КАК Сумма,
|    ТаблицаТовары.СтавкаНДС                     КАК СтавкаНДС,
|    ТаблицаТовары.СуммаНДС                      КАК СуммаНДС,
|    ТаблицаТовары.СуммаСНДС                     КАК Всего
|ИЗ
|    Документ.ПоступлениеТоваров.Товары КАК ТаблицаТовары
|ГДЕ
|    ТаблицаТовары.Ссылка = &Ссылка
|");

ЗапросДанныхДокумента.УстановитьПараметр("Ссылка"                            , Источник.Ссылка);
ЗапросДанныхДокумента.УстановитьПараметр("ВыгрузитьГруппуБухгалтерскогоУчета", Параметры.ВыгрузитьГруппуБухгалтерскогоУчета);
ЗапросДанныхДокумента.УстановитьПараметр("ВыгрузитьСтоимость"                , Параметры.ВыгрузитьСтоимость);
ЗапросДанныхДокумента.УстановитьПараметр("ПринятьНДСКВычету"                 , ?(Источник.ПринятьНДСКВычету, 1, 0));

ТаблицаТовары = ЗапросДанныхДокумента.Выполнить().Выгрузить();

// Получение счетов учета

Организация = Источник.Организация;
ИсточникФинансирования = Неопределено;
Если ПолучитьФункциональнуюОпцию("ИспользоватьИсточникиФинансирования") Тогда
    ИсточникФинансирования = Источник.ИсточникФинансирования;
КонецЕсли;
ДатаСреза = Источник.Дата;
СчетаУчета = Неопределено;
Выполнить(Алгоритмы.ПолучитьСчетаУчетаОпераций);

// Заполнение свойств объекта

ВходящиеДанные.Вставить("Материалы", ТаблицаТовары);
// Единицы измерения товаров таблицы Материалы заполняются

// из базовой единицы номенклатуры в отложенной обработке заполнения.

ВходящиеДанные.Вставить("ИсточникФинансирования", ИсточникФинансирования);
ВходящиеДанные.Вставить("Баланс"                , СчетаУчета.ИсточникФинансовогоОбеспечения);
ВходящиеДанные.Вставить("КВД"                   , СчетаУчета.КФО);

Если Источник.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика Тогда
    ВходящиеДанные.Вставить("ВидОперации"         , "МЗ_Покупка_ПоступлениеОтПоставщика");
    ВходящиеДанные.Вставить("СчетКредита"         , "302.34");
    ВходящиеДанные.Вставить("СубконтоСчетКредита2", Источник.Контрагент);
    ВходящиеДанные.Вставить("СубконтоСчетКредита3", Источник.ДоговорКонтрагента);
ИначеЕсли Источник.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаЧерезПодотчетноеЛицо Тогда
    ВходящиеДанные.Вставить("ВидОперации"         , "МЗ_Покупка_ПоступлениеЧерезПЛ");
    ВходящиеДанные.Вставить("СчетКредита"         , "208.34");
    ВходящиеДанные.Вставить("СубконтоСчетКредита2", Новый Структура("Значение, ИмяПКО", Источник.ПодотчетноеЛицо, "ФизЛицо_Контрагент"));
    ВходящиеДанные.Вставить("СубконтоСчетКредита3", Неопределено);
КонецЕсли;

ВходящиеДанные.Вставить("КБКСчетКредита"        , СчетаУчета.КПСРасчетыСПоставщиками);
ВходящиеДанные.Вставить("ВидКБКСчетКредита"     , СчетаУчета.ВидКПСРасчетыСПоставщиками);
// КОСГУ счета кредита заполняется в отложенной обработке заполнения.


// Счет дебета заполняется в отложенной обработке заполнения.

ВходящиеДанные.Вставить("КБКСчетДебета"         , СчетаУчета.КПСПоСчету105);
ВходящиеДанные.Вставить("ВидКБКСчетДебета"      , СчетаУчета.ВидКПСПоСчету105);
// КОСГУ счета дебета заполняется в отложенной обработке заполнения.


СтруктураКурсаДокумента = РаботаСКурсамиВалют.ПолучитьКурсВалюты(Источник.Валюта, Источник.Дата);
ВходящиеДанные.Вставить("КурсВзаиморасчетов"     , СтруктураКурсаДокумента.Курс);
ВходящиеДанные.Вставить("КратностьВзаиморасчетов", СтруктураКурсаДокумента.Кратность);
   bezdarOREnburgski
 
2 - 01.09.21 - 10:13
Меня интересует как правильно обращаться к полю "баланс" документа в источнике Поступление товаров. (в приемнике ИФО)
   bezdarOREnburgski
 
3 - 01.09.21 - 10:35
Как мне из источника "баланс" передать в приемник "ИФО" и установить ему значение ОМС?
   Aleksey
 
4 - 01.09.21 - 10:51
тип какой?
   Aleksey
 
5 - 01.09.21 - 10:53
Если справочник то просто для группы делаешь отдельное правило с поиском по нименованию, и при выгрузке меняешь наименование 
если Источник.Наименование = "ОМС амбулатория" тогда
   Значение = ОМС;
Иначе...
   Aleksey
 
6 - 01.09.21 - 11:15
Судя по 
Баланс - СчетаУчета.ИсточникФинансовогоОбеспечения
То Баланс это ПС, тогда просто на вкладке конвертация значений настрой соответствие
ОМС амбулатория - ОМС
ОМС стационар - ОМС
ОМС Covid - ОМС ковид
   bezdarOREnburgski
 
7 - 01.09.21 - 11:26
Блин Aleksey спасибо. Вообще из башки вылетело про конвертацию значений
   bezdarOREnburgski
 
8 - 01.09.21 - 11:28
(5) просто свойство наименование))). Вот что значит зацикливание на проблеме.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.