![]() |
![]() |
![]() |
|
v7: ИД= RBS.ValueToDBString(ТекДок.ТекущийДокумент()) | ☑ | ||
---|---|---|---|---|
0
evrybod
01.12.16
✎
22:18
|
Всем доброго времени суток
подскажите лузеру с ошибкой в базе) Опишу ситуацию полностью - существует база с определенными настройками заточеная под отпределеную сферу торговли - я ее само собой слямзил) вот пытаюсь запустить ее у себя на ПК - все получилось, но в базе присутсвовали данные от прошлого магазина - решил вопрос посмотрев видео по вот этой ссылке - http://extremallife.ru/work/1s/video-new-base-1s-7-7 скачав там файлик для очистки базы проделал все как в видео - после удаления все стало так как мне нужно - то есть удалились все данные продаж приемок, приходов товара и други доки, но сохранился справочник товар, клиентов, я уж было порадовался и начал вносить свои товары в базу - точнее в приходную накладную, но при попытке провести данную накладную получил отказ и вот такого рода сообщение: ИД= RBS.ValueToDBString(ТекДок.ТекущийДокумент()); {Глобальный модуль(2129)}: Значение не представляет агрегатный объект (ValueToDBString) Ума хватило открыть конфигурацию базы и перейти к этой строчке - но ничего больше не понял((((((( сам модуль выглядит вот так : //Расчет суммы оплаты или отгрузки по счету контрагента в зависимости от признака: "Д" или "К" Процедура глРассчитатьСуммуО(ТекДок,Контрагент,СчетКонтрагента,Валюта,ВидНДС,СуммаО,НДСО,Признак,Заказ=0,ДопНалогО=0) Экспорт Перем ДатаДок,Ст,ИтЗак,Час,Минута,Секунда; // ТекДок = Контекст из формы или ТекущийДокумент из модуля проведения ДатаДок = ?(ТекДок.Выбран() = 0, ТекДок.ДатаДок+1, ТекДок.ТекущийДокумент()); Если ТекДок.Выбран()=0 тогда ДатаДок = ТекДок.ДатаДок+1; иначе ТекДок.ПолучитьВремя(Час,Минута,Секунда); Время=Строка((Час*3600+Минута*60+Секунда)*10000); Пока СтрДлина(Время)<10 Цикл Время=" "+Время; КонецЦикла; ИД= RBS.ValueToDBString(ТекДок.ТекущийДокумент()); ИДКон=Прав(ИД,3); ИДНач=СокрЛП(Лев(ИД,6)); ИД_10=СокрЛП(Rbs.BaseToInt(ИДНач,36)); Пока СтрДлина(ИД_10)<10 Цикл ИД_10=" "+ИД_10; КонецЦикла; ДатаДок="#"+Формат(ТекДок.ДатаДок,"ДГГГГММДД")+Время+ИД_10+ИДКон; КонецЕсли; СуммаО = 0; НДСО = 0; ДопНалогО=0; ИтЗак = СоздатьОбъект("БухгалтерскиеИтоги"); ИтЗак.ИспользоватьПланСчетов(ПланыСчетов.Основной); ИтЗак.ИспользоватьРазделительУчета(ДатьРазделительУчета(ТекДок.Фирма)); ИтЗак.ИспользоватьСубконто(ВидыСубконто.Контрагенты, Контрагент, 2); Если (ПустоеЗначение(Заказ) = 0) И (глСчетИмеетАналитику(СчетКонтрагента,ВидыСубконто.Заказы)=1) Тогда ИтЗак.ИспользоватьСубконто(ВидыСубконто.Заказы, Заказ, 2); КонецЕсли; ИтЗак.ВыполнитьЗапрос(ДатаДок,,СчетКонтрагента.Код,,,,,"СВ"); Если Валюта = Гривня Тогда СуммаО = ?(Признак = "Д", ИтЗак.СНД()-ИтЗак.СНК(), ИтЗак.СНК()-ИтЗак.СНД()); Ст = ВидНДС.Ставка.Получить(ДатаДок); Иначе Если ИтЗак.ПолучитьВалюту(,Валюта) = 1 Тогда СуммаО = ?(Признак = "Д", ИтЗак.СНД("В")-ИтЗак.СНК("В"), ИтЗак.СНК("В")-ИтЗак.СНД("В")); КонецЕсли; Ст = 0; // при валютной операции НДСа быть не должно КонецЕсли; ИтЗак = 0; СуммаО = Макс(СуммаО,0); //НДСО = Окр(СуммаО*Ст/(1+Ст),2); ДопНалог = 0; // а доп. налог отгрузки определим из пропорции СуммаОтгрузки-СуммаЗаказа Если НЕ(ПустоеЗначение(Заказ)=1) Тогда Попытка ДопНалогО=(СуммаО/Заказ.Итог("СуммаСНДС"))*Заказ.Итог("ДопНалог"); Исключение КонецПопытки; КонецЕсли; НДСО = Окр((СуммаО-ДопНалогО)*Ст/(1+Ст),2); КонецПроцедуры // =============================== Функция Представление(Субк) Экспорт Если ТипЗначения(Субк)=11 Тогда Возврат ""+Субк.ПолныйКод()+" "+Субк.Наименование; Иначе Возврат Строка(Субк); КонецЕсли; КонецФункции // =============================== Процедура ПечатьДвижений(ТД) Экспорт Если ТД.Выбран()=0 Тогда Возврат; КонецЕсли; ТекОпер = СоздатьОбъект("Операция"); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ДвиженияДокумента"); Таб.ВывестиСекцию("Шапка"); Если ТД.СуществуетОперация()=1 Тогда // напечатем проводки Опер = ТД.Операция; Если Опер.ВыбратьПроводки()=1 Тогда Таб.ВывестиСекцию("ЗагПроводка"); КонецЕсли; Пока Опер.ПолучитьПроводку()=1 Цикл Ном = Опер.НомерПроводки(); Если Опер.СложнаяПроводка()=1 Тогда Ном = Строка(Опер.НомерПроводки())+"/"+Строка(Опер.НомерКорреспонденции()); КонецЕсли; Кво = ?(Опер.Количество=0,"",Формат(Опер.Количество,"Ч13.3")); ВалСумма = ?(Опер.ВалСумма=0,"",Формат(Опер.ВалСумма,"Ч12.2")); Сумма = ?(Опер.Сумма=0,"",Формат(Опер.Сумма,"Ч12.2")); Курс = ?(Опер.Валюта.Выбран()=0,"",Формат(Опер.Валюта.Курс.Получить(ТД.ДатаДок),"Ч10.5")); Таб.ВывестиСекцию("Проводка"); КонецЦикла; КонецЕсли; Если ТД.ОперативнаяОперация.Выбран()=1 Тогда // напечатем проводки Если (ТекОпер.НайтиОперацию(ТД.ОперативнаяОперация)=1) Тогда Опер = ТекОпер; Если Опер.ВыбратьПроводки()=1 Тогда Таб.ВывестиСекцию("ОперОперация"); Таб.ВывестиСекцию("ЗагПроводка"); КонецЕсли; Пока Опер.ПолучитьПроводку()=1 Цикл Ном = Опер.НомерПроводки(); Если Опер.СложнаяПроводка()=1 Тогда Ном = Строка(Опер.НомерПроводки())+"/"+Строка(Опер.НомерКорреспонденции()); КонецЕсли; Кво = ?(Опер.Количество=0,"",Формат(Опер.Количество,"Ч13.3")); ВалСумма = ?(Опер.ВалСумма=0,"",Формат(Опер.ВалСумма,"Ч12.2")); Сумма = ?(Опер.Сумма=0,"",Формат(Опер.Сумма,"Ч12.2")); Курс = ?(Опер.Валюта.Выбран()=0,"",Формат(Опер.Валюта.Курс.Получить(ТД.ДатаДок),"Ч10.5")); Таб.ВывестиСекцию("Проводка"); КонецЦикла; КонецЕсли; КонецЕсли; // выборка движений по регистрам Регистры = СоздатьОбъект("СписокЗначений"); Регистры.ДобавитьЗначение("Остатки","Остатки"); Регистры.ДобавитьЗначение("Взаиморасчеты","Взаиморасчеты"); Регистры.ДобавитьЗначение("Консигнация","Консигнация"); Регистры.ДобавитьЗначение("Резерв","Резерв"); Регистры.ДобавитьЗначение("Бронь","Бронь"); Регистры.ДобавитьЗначение("Деньги","Деньги"); Регистры.ДобавитьЗначение("Обороты","Обороты"); Регистры.ДобавитьЗначение("ТоварыВПути","ТоварыВПути"); Регистры.ДобавитьЗначение("КонсигнацияВПути","КонсигнацияВПути"); Регистры.ДобавитьЗначение("Гарантия","Гарантия"); Регистры.ДобавитьЗначение("ГарантияВПути","ГарантияВПути"); Регистры.ДобавитьЗначение("ОстаткиСЗ","ОстаткиСЗ"); Регистры.ДобавитьЗначение("ДеньгиВПути","ДеньгиВПути"); Регистры.ДобавитьЗначение("ВзаиморасчетыСотр","ВзаиморасчетыСотр"); Регистры.ДобавитьЗначение("ОстаткиБ","ОстаткиБ"); Регистры.ДобавитьЗначение("ВзаиморасчетыБ","ВзаиморасчетыБ"); Регистры.ДобавитьЗначение("ФормированиеПрихода","ФормированиеПрихода"); Для Инд = 1 по Регистры.РазмерСписка() Цикл Рег = СоздатьОбъект("Регистр."+Регистры.ПолучитьЗначение(Инд)); Если Рег.ВыбратьДвиженияДокумента(ТД)=1 Тогда Таб.ВывестиСекцию("Шапка"+Регистры.ПолучитьЗначение(Инд)); КонецЕсли; Пока Рег.ПолучитьДвижение()=1 Цикл Дв = "+"; Если Рег.Расход = 1 Тогда Дв = "-"; КонецЕсли; Таб.ВывестиСекцию("Строка"+Регистры.ПолучитьЗначение(Инд)); КонецЦикла; КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Защита(Константа.ФлагЗащитыТаблиц); Таб.Опции(0,0,,); Таб.Показать("ПЕЧАТЬ: Движения документа "+ТД,""); КонецПроцедуры // =============================== Функция ПартияВидТорговли(Парт) Экспорт ВидТорг = 0; Док = Парт.Док; Если Док.Выбран()=1 Тогда Если Док.Вид()="ПриходнаяНакладная" Тогда ВидТорг = Док.ВидТорговли; КонецЕсли; КонецЕсли; Возврат ВидТорг; КонецФункции // =============================== Процедура Парсить(Стр,Спис) Экспорт // преобразовать строку в список значений Спис.УдалитьВсе(); СтрПарс = Стр; Инд = Найти(СтрПарс,";"); Пока Инд<>0 Цикл ТекСтр = Сред(СтрПарс,1,Инд-1); СтрПарс = Сред(СтрПарс,Инд+1,СтрДлина(СтрПарс)-Инд); ИндРавно = Найти(ТекСтр,"="); Если ИндРавно = 0 Тогда Продолжить; КонецЕсли; Пар = Сокрлп(Сред(ТекСтр,1,ИндРавно-1)); Зна = Сокрлп(Сред(ТекСтр,ИндРавно+1,СтрДлина(ТекСтр)-ИндРавно)); Спис.ДобавитьЗначение(Зна,Пар); Инд = Найти(СтрПарс,";"); КонецЦикла; КонецПроцедуры // =============================== Функция ФИО(Сотр,Кратко=0) Экспорт Если ПустоеЗначение(Сотр)=1 Тогда // временная затычка Возврат ""; КонецЕсли; Если (Сотр.Вид()="ШтатноеРасписание") Тогда Если Кратко = 1 Тогда Возврат Сокрлп(Сотр.Сотрудник.Наименование)+" "+Сред(Сотр.Сотрудник.Имя,1,1)+". "+Сред(Сотр.Сотрудник.Отчество,1,1)+"."; Иначе Возврат Сокрлп(Сотр.Сотрудник.Наименование)+" "+Сокрлп(Сотр.Сотрудник.Имя)+" "+Сокрлп(Сотр.Сотрудник.Отчество); КонецЕсли; ИначеЕсли (Сотр.Вид()="Сотрудники") Тогда Если Кратко = 1 Тогда Возврат Сокрлп(Сотр.Наименование)+" "+Сред(Сотр.Имя,1,1)+". "+Сред(Сотр.Отчество,1,1)+"."; Иначе Возврат Сокрлп(Сотр.Наименование)+" "+Сокрлп(Сотр.Имя)+" "+Сокрлп(Сотр.Отчество); КонецЕсли; КонецЕсли; КонецФункции // =============================== Функция глДатьДолларТоварный() Экспорт Перем ДолларТ; ДолларТ=НашОтдел.ДолларТоварный; ДолларТ=?(НЕ(ПустоеЗначение(ДолларТ)=1),ДолларТ,Доллар); Возврат ДолларТ; КонецФункции подскажите пожалуйста что нужно изменить чтоб все заработало? |
|||
1
Mauser
01.12.16
✎
23:23
|
Карму не обманешь - не хочешь платить за базу, будешь платить специалисту.
|
|||
2
Злопчинский
01.12.16
✎
23:26
|
1с++ поставь
|
|||
3
Franchiser
гуру
02.12.16
✎
00:08
|
ЗначениеВСтрокуБД() синтаксис 1с++
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |