|
Обработка для 1с 8.2 БП не видит субсчета | ☑ | ||
---|---|---|---|---|
0
sergey1982
25.01.14
✎
19:49
|
Подскажите, пожалуйста, в БП 2.0 была обработка по установлению в проводках счетов и субконто. По условию, если сч. к-т = 10.09, то сч. дб-т = 44.01. При этом в обработке условия заданы так:
Если Запись.СчетКт.Родитель = ПланыСчетов.Хозрасчетный.Материалы Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения; Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000029"); Т.е. обработка искала не конкретно 10.09 а счет 10 по всем субсчетам! Теперь появилась необходимость установить условие с различением субсчетов 10.09 и 10.10. В обработке задал условие так: Запись.СчетКт.Родитель = ПланыСчетов.Хозрасчетный.СпецоснасткаИСпецодеждаНаСкладе, но ничего не работает. Подскажите, пожалуйста, как мне задать в обработке выбор по субсчетам? |
|||
1
hhhh
25.01.14
✎
19:55
|
(а там точно есть субсчета в счете 10.09?
|
|||
2
sergey1982
25.01.14
✎
19:56
|
в плане счетов есть.
|
|||
3
sergey1982
25.01.14
✎
19:57
|
Не совсем вопрос понял, извиняюсь
|
|||
4
sergey1982
25.01.14
✎
19:57
|
могу код обработки показать если что
|
|||
5
hhhh
25.01.14
✎
19:58
|
(4) какие субсчета у вас у счета 10.09?
|
|||
6
sergey1982
25.01.14
✎
19:59
|
Поправлюсь, необходимо различать субсчета счета 10 на 10.09 и 10.10
|
|||
7
sergey1982
25.01.14
✎
20:00
|
А обработка изначально была заточена под счет 10 без разделения на субсчета!!!
|
|||
8
hhhh
25.01.14
✎
20:01
|
(6) ну так и пишите в программе. Зачем вы в программе субсчета счетов 10.09 и 10.10 берете?
|
|||
9
sergey1982
25.01.14
✎
20:03
|
Как счет 10.09 называется в коде 1с?
|
|||
10
sergey1982
25.01.14
✎
20:03
|
Вот код обработки:
Процедура ПриОткрытии() ДатаНачала = ТекущаяДата(); ДатаОкнончания = ТекущаяДата(); ЭтаФорма.Организация = глЗначениеПеременной("ОсновнаяОрганизация"); КонецПроцедуры Процедура КнопкаВыполнитьНажатие(Кнопка) Если ЭтаФорма.Организация = Справочники.Организации.ПустаяСсылка() Тогда Предупреждение("Не указана организация для списания!"); Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СписаниеТоваров.Ссылка |ИЗ | Документ.СписаниеТоваров КАК СписаниеТоваров |ГДЕ | СписаниеТоваров.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И СписаниеТоваров.Организация = &Организация | И СписаниеТоваров.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала)); Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкнончания)); Запрос.УстановитьПараметр("Организация", ЭтаФорма.Организация); ВыборкаПоДокументам = Запрос.Выполнить().Выбрать(); Пока ВыборкаПоДокументам.Следующий() Цикл ДокументОбъект = ВыборкаПоДокументам.Ссылка.ПолучитьОбъект(); Если Найти(ДокументОбъект.Склад.Наименование,"клад") > 0 Тогда ТекПозиция = Найти(ДокументОбъект.Склад.Наименование,"клад") + 5; ТекНаименование = СокрЛ(Сред(ДокументОбъект.Склад.Наименование,ТекПозиция)); //Сообщить(ТекНаименование); Иначе ТекПозиция = Найти(ДокументОбъект.Склад.Наименование,"ех") + 3; ТекНаименование = СокрЛ(Сред(ДокументОбъект.Склад.Наименование,ТекПозиция)); //Сообщить(ТекНаименование); КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПодразделенияОрганизаций.Ссылка |ИЗ | Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций |ГДЕ | ПодразделенияОрганизаций.Владелец = &Владелец | И ПодразделенияОрганизаций.Наименование = &Наименование | И ПодразделенияОрганизаций.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("Владелец",ВыборкаПоДокументам.Ссылка.Организация); Если ЭтаФорма.Производственное Тогда Запрос.УстановитьПараметр("Наименование","Цех " + ТекНаименование); Иначе Запрос.УстановитьПараметр("Наименование",ДокументОбъект.Склад.Наименование); КонецЕсли; Рез = Запрос.Выполнить().Выбрать(); Рез.Следующий(); Подразделение = Рез.Ссылка; Если ВыборкаПоДокументам.Ссылка.Проведен = Ложь Тогда Попытка ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение); Исключение Сообщить("Не удалось записать документ "+ДокументОбъект); Продолжить; КонецПопытки; КонецЕсли; Если ВыборкаПоДокументам.Ссылка.РучнаяКорректировка = Ложь Тогда ДокументОбъект.РучнаяКорректировка = Истина; ЗаписиРегистра = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); ЗаписиРегистра.Отбор.Регистратор.Установить(ВыборкаПоДокументам.ССылка); ЗаписиРегистра.Прочитать(); Если ЗаписиРегистра.Количество() > 0 Тогда Если ЭтаФорма.Производственное Тогда Для Каждого Запись ИЗ ЗаписиРегистра Цикл Если Запись.СчетКт = ПланыСчетов.Хозрасчетный.ГотоваяПродукция Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД; Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ДокументОбъект.Склад.Наименование); //Запись.ПодразделениеДт = Подразделение; ИначеЕсли Запись.СчетКт.Родитель = ПланыСчетов.Хозрасчетный.Материалы Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Цех " + ТекНаименование); Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000011"); Запись.ПодразделениеДт = Подразделение; ИначеЕсли ВыборкаПоДокументам.Ссылка.Склад = Справочники.Склады.НайтиПоНаименованию("Основной склад") И Запись.СчетКт <> ПланыСчетов.Хозрасчетный.ГТД Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы; Запись.ПодразделениеДт = Подразделение; //Запись.СубконтоДт.СтатьиЗатрат = Неопределено; //Запись.СубконтоДт.НоменклатурныеГруппы = Неопределено; ИначеЕсли Запись.СчетКт <> ПланыСчетов.Хозрасчетный.ГТД Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; Запись.ПодразделениеДт = Подразделение; Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ДокументОбъект.Склад.Наименование); //Запись.СубконтоДт.СтатьиЗатрат = Неопределено; КонецЕсли; // Рарус byse { Если Запись.СчетДт <> ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД И Запись.СчетКт.Родитель = ПланыСчетов.Хозрасчетный.Товары Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000029"); КонецЕсли; // Рарус byse } КонецЦикла; Иначе Для Каждого Запись ИЗ ЗаписиРегистра Цикл Если Запись.СчетКт = ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговле Тогда //Запись.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения; Запись.СчетДт = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД; Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ДокументОбъект.Склад.Наименование); //Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000029"); //Запись.ПодразделениеДт = Неопределено; ИначеЕсли Запись.СчетКт.Родитель = ПланыСчетов.Хозрасчетный.Материалы Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения; Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000029"); Если Запись.СубконтоКт.Склады = Справочники.Склады.НайтиПоНаименованию("Основной склад") Тогда Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000034"); ИначеЕсли Найти(ДокументОбъект.Склад.Наименование,"Бар") > 0 Тогда Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ДокументОбъект.Склад.Наименование); Иначе Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Бар " + ТекНаименование); КонецЕсли; //Запись.ПодразделениеДт = Неопределено; //ИначеЕсли Запись.СчетКт = ПланыСчетов.Хозрасчетный.ГотоваяПродукция Тогда // Запись.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения; ИначеЕсли ВыборкаПоДокументам.Ссылка.Склад = Справочники.Склады.НайтиПоНаименованию("Основной склад") И Запись.СчетКт <> ПланыСчетов.Хозрасчетный.ГТД Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы; Запись.ПодразделениеДт = Подразделение; //Запись.СубконтоДт.СтатьиЗатрат = Неопределено; //Запись.СубконтоДт.НоменклатурныеГруппы = Неопределено; ИначеЕсли Запись.СчетКт <> ПланыСчетов.Хозрасчетный.ГТД Тогда Запись.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; Запись.ПодразделениеДт = Подразделение; Запись.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ДокументОбъект.Склад.Наименование); //Запись.СубконтоДт.СтатьиЗатрат = Неопределено; КонецЕсли; // Рарус byse { Если Запись.СчетКт.Родитель = ПланыСчетов.Хозрасчетный.Материалы Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000029"); ИначеЕсли Запись.СчетДт <> ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД И Запись.СчетКт.Родитель = ПланыСчетов.Хозрасчетный.Товары Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000029"); КонецЕсли; // Рарус byse } КонецЦикла; КонецЕсли; ЗаписиРегистра.Записать(); Попытка ДокументОбъект.Записать(); Исключение Сообщить("Не удалось записать документ "+ДокументОбъект); КонецПопытки; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ДатаНачалаПриИзменении(Элемент) Если Элемент.Значение > ЭтотОбъект.ДатаОкнончания Тогда ЭтотОбъект.ДатаОкнончания = Элемент.Значение; КонецЕсли; КонецПроцедуры //произв //10-20.01 //43-90.02.1 (цех) //магазин //10-44.01 суб МатРасхЕнвд+НомГруппа //41.02-90.02.2 суб |
|||
11
hhhh
25.01.14
✎
20:04
|
(10) ну вот у вас
СчетКт.Родитель = ПланыСчетов.Хозрасчетный.СпецоснасткаИСпецодеждаНаСкладе это же полный бред |
|||
12
sergey1982
25.01.14
✎
20:06
|
А как правильно задать?
|
|||
13
sergey1982
25.01.14
✎
20:12
|
совсем горю ((
|
|||
14
sergey1982
25.01.14
✎
20:25
|
все ушли (
|
|||
15
hhhh
25.01.14
✎
20:55
|
СчетКт = ПланыСчетов.Хозрасчетный.СпецоснасткаИСпецодеждаНаСкладе
|
|||
16
sergey1982
25.01.14
✎
21:23
|
Спасибо огромное, уже разобрался - также как Вы только что написали сделал. Еще раз огромное спасибо за помощь!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |