Как выбрать счет 76.1 в проводке, если у него есть субсч 76.1.1?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Недавно заметили что у нас все еще болтается сумма на 76.1.
Ничего себе прозрели, такую мелочь раньше не замечали)
Ну при желании просто пишете обработку в пару строк, которая сама создаст операцию запишет в нее что нужно и проведет без вопросов, а вручную врятле.
(17) Pilot741, Ну вот есть у меня процедура, которая заполняет операцию из ТЗ
Сама ТЗ вида:
Табл1.НоваяКолонка("Дата","Дата",,,,5); //таблица загрузки
Табл1.НоваяКолонка("Об","Строка",,,,5);
Табл1.НоваяКолонка("Суб1Н",,,,"С1",10);
Табл1.НоваяКолонка("Суб2Н",,,,"С2",10);
Табл1.НоваяКолонка("Суб3Н",,,,"С3",10);
Табл1.НоваяКолонка("Суб4Н",,,,"С4",10);
Табл1.НоваяКолонка("КорСчет",,,,,5);
Табл1.НоваяКолонка("КСуб1Н",,,,"КорС1",10);
Табл1.НоваяКолонка("КСуб2Н",,,,"КорС2",10);
Табл1.НоваяКолонка("КСуб3Н",,,,"КорС3",10);
Табл1.НоваяКолонка("КСуб4Н",,,,"КорС4",10);
Табл1.НоваяКолонка("ВСумма","Число",,,"Вал. сумма",10);
Табл1.НоваяКолонка("Вал","Справочник.Валюты",,,,3);
Табл1.НоваяКолонка("Количество","Число",,,"Кол-во",5);
Табл1.НоваяКолонка("Сумма","Число",,,,10);
Сама ТЗ вида:
Табл1.НоваяКолонка("Дата","Дата",,,,5); //таблица загрузки
Табл1.НоваяКолонка("Об","Строка",,,,5);
Табл1.НоваяКолонка("Суб1Н",,,,"С1",10);
Табл1.НоваяКолонка("Суб2Н",,,,"С2",10);
Табл1.НоваяКолонка("Суб3Н",,,,"С3",10);
Табл1.НоваяКолонка("Суб4Н",,,,"С4",10);
Табл1.НоваяКолонка("КорСчет",,,,,5);
Табл1.НоваяКолонка("КСуб1Н",,,,"КорС1",10);
Табл1.НоваяКолонка("КСуб2Н",,,,"КорС2",10);
Табл1.НоваяКолонка("КСуб3Н",,,,"КорС3",10);
Табл1.НоваяКолонка("КСуб4Н",,,,"КорС4",10);
Табл1.НоваяКолонка("ВСумма","Число",,,"Вал. сумма",10);
Табл1.НоваяКолонка("Вал","Справочник.Валюты",,,,3);
Табл1.НоваяКолонка("Количество","Число",,,"Кол-во",5);
Табл1.НоваяКолонка("Сумма","Число",,,,10);
Процедура СоздатьОперацию()
Опер = СоздатьОбъект("Операция");
Если ВыбСчет.Выбран() = 0 Тогда
Предупреждение("Не выбран счет!");
Возврат;
ИначеЕсли Табл1.КоличествоСтрок() = 0 Тогда
Предупреждение("Нет загруженных данных!");
Возврат;
ИначеЕсли ВыбОперация.Выбран() = 1 Тогда
Если Вопрос("Будет полностью переписана выбранная операция! Продолжить?","Да+Нет") = "Нет" Тогда
Возврат;
КонецЕсли;
Опер.НайтиОперацию(ВыбОперация);
Если ВыбОперация.Проведен() = 1 Тогда
Опер.СделатьНеПроведенным();
КонецЕсли;
Если ВыбОперация.ПометкаУдаления() = 1 Тогда
ВыбОперация.СнятьПометкуУдаления();
КонецЕсли;
Пока 1 = 1 Цикл
Если Опер.КоличествоПроводок() = 0 Тогда
Прервать;
КонецЕсли;
Опер.ПолучитьПроводкуПоНомеру(1);
Опер.УдалитьПроводку();
КонецЦикла;
Иначе
Опер.Новая();
КонецЕсли;
Табл1.ПолучитьСтрокуПоНомеру(1);
Об = СокрЛП(Табл1.Об);
Опер.Содержание = "Перенос "+?(Лев(Об,1) = "С", "сальдо на " + ?(Сред(Об,2,1) = "Н","начало ","конец ") + " по " + ?(Прав(Об,1) = "Д","дебету ","кредиту "), ?(Лев(Об,1) = "Д","дебетового ","кредитового ")+ "оборота ")+ " по счету "+СокрЛП(ВыбСчет);
Опер.ДатаОперации = Табл1.Дата;
Табл1.ВыбратьСтроки();
Пока Табл1.ПолучитьСтроку() = 1 Цикл
Опер.НоваяПроводка();
Если (Об = "СНД") или (Об = "ДО") или (Об = "СКД") Тогда
Опер.Дебет.Счет = ВыбСчет;
Если ВыбСчет.КоличествоСубконто() >= 1 тогда
Опер.Дебет.Субконто(ВыбСчет.ВидСубконто(1), Табл1.Суб1Н);
КонецЕсли;
Если ВыбСчет.КоличествоСубконто() >= 2 тогда
Опер.Дебет.Субконто(ВыбСчет.ВидСубконто(2), Табл1.Суб2Н);
КонецЕсли;
Если ВыбСчет.КоличествоСубконто() >= 3 тогда
Опер.Дебет.Субконто(ВыбСчет.ВидСубконто(3), Табл1.Суб3Н);
КонецЕсли;
Если ВыбСчет.КоличествоСубконто() >= 4 тогда
Опер.Дебет.Субконто(ВыбСчет.ВидСубконто(4), Табл1.Суб4Н);
КонецЕсли;
Если ВыбСчет.Забалансовый = 0 Тогда
Если ПустоеЗначение(Табл1.КорСчет) = 1 Тогда
Опер.Кредит.Счет = СчетПоКоду("00");
Иначе
Опер.Кредит.Счет = Табл1.КорСчет;
Если Табл1.КорСчет.КоличествоСубконто() >= 1 тогда
Опер.Кредит.Субконто(Табл1.КорСчет.ВидСубконто(1), Табл1.КСуб1Н);
КонецЕсли;
Если Табл1.КорСчет.КоличествоСубконто() >= 2 тогда
Опер.Кредит.Субконто(Табл1.КорСчет.ВидСубконто(2), Табл1.КСуб2Н);
КонецЕсли;
Если Табл1.КорСчет.КоличествоСубконто() >= 3 тогда
Опер.Кредит.Субконто(Табл1.КорСчет.ВидСубконто(3), Табл1.КСуб3Н);
КонецЕсли;
Если Табл1.КорСчет.КоличествоСубконто() >= 4 тогда
Опер.Кредит.Субконто(Табл1.КорСчет.ВидСубконто(4), Табл1.КСуб4Н);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли (Об = "СНК") или (Об = "КО") или (Об = "СКК") Тогда
Опер.Кредит.Счет = ВыбСчет;
Если ВыбСчет.КоличествоСубконто() >= 1 тогда
Опер.Кредит.Субконто(ВыбСчет.ВидСубконто(1), Табл1.Суб1Н);
КонецЕсли;
Если ВыбСчет.КоличествоСубконто() >= 2 тогда
Опер.Кредит.Субконто(ВыбСчет.ВидСубконто(2), Табл1.Суб2Н);
КонецЕсли;
Если ВыбСчет.КоличествоСубконто() >= 3 тогда
Опер.Кредит.Субконто(ВыбСчет.ВидСубконто(3), Табл1.Суб3Н);
КонецЕсли;
Если ВыбСчет. КоличествоСубконто() >= 4 тогда
Опер.Кредит.Субконто(ВыбСчет.ВидСубконто(4), Табл1.Суб4Н);
КонецЕсли;
Если ВыбСчет.Забалансовый = 0 Тогда
Если ПустоеЗначение(Табл1.КорСчет) = 1 Тогда
Опер.Дебет.Счет = СчетПоКоду("00");
Иначе
Опер.Дебет.Счет = Табл1.КорСчет;
Если Табл1.КорСчет.КоличествоСубконто() >= 1 тогда
Опер.Дебет.Субконто(Табл1.КорСчет.ВидСубконто(1), Табл1.КСуб1Н);
КонецЕсли;
Если Табл1.КорСчет.КоличествоСубконто() >= 2 тогда
Опер.Дебет.Субконто(Табл1.КорСчет.ВидСубконто(2), Табл1.КСуб2Н);
КонецЕсли;
Если Табл1.КорСчет.КоличествоСубконто() >= 3 тогда
Опер.Дебет.Субконто(Табл1.КорСчет.ВидСубконто(3), Табл1.КСуб3Н);
КонецЕсли;
Если Табл1.КорСчет.КоличествоСубконто() >= 4 тогда
Опер.Дебет.Субконто(Табл1.КорСчет.ВидСубконто(4), Табл1.КСуб4Н);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Предупреждение("Неверный вид сальдо/оборота");
Возврат;
КонецЕсли;
Если флСписание = 0 Тогда
Опер.Сумма = Табл1.Сумма;
Опер.Количество = Табл1.Количество;
Иначе
Опер.Сумма = -Табл1.Сумма;
Опер.Количество = -Табл1.Количество;
КонецЕсли;
Если ВыбСчет.Валютный = 1 Тогда
Опер.Валюта = Табл1.Вал;
Если флСписание = 0 Тогда
Опер.ВалСумма = Табл1.ВСумма;
Иначе
Опер.ВалСумма = -Табл1.ВСумма;
КонецЕсли;
КонецЕсли;
Опер.СодержаниеПроводки = "Перенос "+?(Лев(Об,1) = "С", "сальдо на " + ?(Сред(Об,2,1) = "Н","начало ","конец ") + " по " + ?(Прав(Об,1) = "Д","дебету ","кредиту "), ?(Лев(Об,1) = "Д","дебетового ","кредитового ")+ "оборота ")+ " по счету "+СокрЛП(ВыбСчет);
КонецЦикла;
Опер.Записать();
ВыбОперация = Опер;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот