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

Ниже код правил
1 bezdarOR Enburgski
 
01.09.21
10:06
// Удаление дублей в режиме выгрузки ВыгружатьВручную
ОбъектДляУдаления = Источник;
Выполнить(Алгоритмы.ЗаписатьУдалениеОбъекта);

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

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

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

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

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

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

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

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

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

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