sava1 @ Сегодня, 18:22
, алгоритм. в 7 я такое делал легко, тут иной совсем подход. Вот создал я колонку, в "КартинкиСтрок" выбрал стандартную пиктограмму 16х16, написал пока простую процедурку что выше. как связать?
Цитата(sava1 @ 12.02.18, 18:22)
У табличного поля есть событие ПриВыводеСтроки - его никуда "вешать" не надо. Просто создайте обработчик.
Не заметил эту строку в ответе((. Нашел и вставил в обработчик следующий текст
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) // ТекущаяСтрока = ЭлементыФормы.Список.ТекущаяСтрока; // Если ТекущаяСтрока = Неопределено Тогда // Возврат //КонецЕсли; //ТекущийОбъект = ТекущаяСтрока.Ссылка.ПолучитьОбъект(); если ОформлениеСтроки.Ячейки.Запрет.Значение= Истина тогда ОформлениеСтроки.Ячейки.Пикто.УстановитьКартинку(БиблиотекаКартинок.Отклонить); ОформлениеСтроки.Ячейки.Пикто.ОтображатьКартинку = Истина; конецесли; КонецПроцедуры
Но не могу добраться до самого документа( закомментировал), чтобы задать условие вывода согласно реквизита документа.Вывел этот реквизит в таблицу- работает. Но хотелось бы из документа доставать а не ч/з ...
послать на гугл легче всего конечно, а помочь нет желания? там описан вывод в табл. часть и для управляемых форм. Цепляют все это дело в процедуру ПриВыводеСтроки. А куда эту процедуру вешать? У меня нет ее сейчас в модуле. Дописал без всяких условий, чтобы проверить и вывести во все ячейки по колонке "Пикто"но ничего не выводит .
Здравствуйте. Создал колонку в списке документов Реализации с элементом управления "поле ввода" . В оформлении поля ввода выбрал картинку. Необходимо при значении реквизита в документе (тип Булево) МойРеквизит= истина выводить картинку в колонку списка. Не могу сообразить как сделать. В сети инфо мало на этот счет.
Платежные поручения входящие в данном случае являются документом расчетов, именно в счет этих двух оплат и была сделана отгрузка, таким образом РТУ закрывает две оплаты, вы их должны были указать в РТУ на закладке "предоплата". В группировке "документ расчетов" поэтому и выводятся платежки. Если первым событием будет отгрузка, тогда увидите РТУ
Да, спасибо- в этом разобрался. В РТУ не было во вкладке "предоплата" проставлены эти 2 платежки, возможно поэтому и светилась задолженность красным. но тем не менее как-то не информативно всё это. Согласен- по двум платежкам была предоплата, и она отражена в РТУ, но почему тогда не выводится сама эта РТУ, чтобы было видно какой накладной закрыли эту предоплату. КАК сверяться с клиентами- это какой-то пальцем тык получается. Интуитивно и визуально понимаю, что предоплата закрыта- т.к. кон. долг=0, в 7,7 такие вопросы решаются одной галочкой "по документам", а здесь невозможно так настроить при таком многообразии настроек, абсурд
На рис1. настройки, на рис.2- последовательность такая была у документов: Сперва выбит заказ на 78996,00 потом два платежных поручения на суммы 24000 и 54996, а затем РТиУ на всю сумму заказа. Как видите, во взаиморасчетах отображены только ПП, заказа и РТиУ нет. Мало того- при открытии Реализации, красным светится долг, равный второй сумме платежа (54996).
Помогите пожалуйста разобраться в структуре отчета "Взаиморасчеты"( 1С 8,3 УТП 1.2.38.1). После перхода с 7,7 полная каша на экране для меня. Хотелось бы видеть как в семерке чёткую картину по контрагенту- 1.Документ долга , а к нему привязаны оплаты или возвратные накладные. Здесь же все в кучу намешано, несмотря даже на то, что учет ведется " по Договору в целом" и стоят галочки "Вести по документам расчетов с контрагентами". Соответственно в платежных поручениях подтянут и договор и документ долга (либо заказ либо РТиУ). В самом отчете выбираю структуру "Контрагент-Договор-Сделка-ДокументРасчетов". Не могу понять либо что-то не так настраиваю либо полность переписывать надо этот отчет?
Сворачивать надо по КодУКТВЭД - Номенклатура ГТД подчиненный справочник - так не свернется
По коду не свернулось, только по наименованию почему то. Интересно уже даже почему, на будущее.
НоваяСтрока["УТКВЭД"] = ТекущаяСтрока.Номенклатура.НоменклатураГТД.Наименование; // так свернулось НоваяСтрока["УТКВЭД"] = ТекущаяСтрока.Номенклатура.НоменклатураГТД.Код; // так нет НоваяСтрока["УТКВЭД"] = ТекущаяСтрока.Номенклатура.НоменклатураГТД.КодУТКВЭД; // и так тоже
XBrut @ Сегодня, 20:02
, Да дело в том, что база только начата и я заполнял с классификаторов, т.е. вручную никто не успел накосячить там
Alex007 @ Сегодня, 20:32
,
К тому же встречаются и три одинаковых УТКВЭД, да и самое главное- есть же товары которые без этого УТКВЭД и они тоже не сворачиваются. Вместо кода стоит <> Вот пример небольшой- там три строчки в доке, две из которых без УТКВЭД:
Задача выгрузить в 3 колонки ТЗ данные из дока, и потом свернуть по первой колонке, просумировав значения в оставшихся двух. Таблица вроде бы заполняется, но не сворачивается не пойму почему. Может потому что сворачиваю по колонке в которой Ссылка на реквизит справочника?
Процедура КнопкаВыполнитьНажатие(Кнопка) // Вставить содержимое обработчика. //ДокРозн=Документы.ОтчетОРозничныхПродажах; ТЗ= Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("УТКВЭД",Новый ОписаниеТипов("СправочникСсылка.НоменклатураГТД")); ТЗ.Колонки.Добавить("Сумма",Новый ОписаниеТипов("Число")); ТЗ.Колонки.Добавить("НДС",Новый ОписаниеТипов("Число")); Налог= Документы.НалоговаяНакладная.СоздатьДокумент(); Для Каждого ТекущаяСтрока Из ДокРозн.Товары Цикл НоваяСтрока = ТЗ.Добавить(); НоваяСтрока["УТКВЭД"] = ТекущаяСтрока.Номенклатура.НоменклатураГТД; НоваяСтрока["Сумма"]=ТекущаяСтрока.Сумма; НоваяСтрока["НДС"]=ТекущаяСтрока.СуммаНДС; Сообщить(""+НоваяСтрока["УТКВЭД"]+" "+НоваяСтрока["Сумма"]+" "+НоваяСтрока["НДС"]); КонецЦикла; ТЗ.Свернуть("УТКВЭД","Сумма,НДС");
Сообщить("ГОТОВО!"); Для Каждого ТекущаяСтрока Из ТЗ Цикл Сообщить(""+ТекущаяСтрока["УТКВЭД"]+" "+ТекущаяСтрока["Сумма"])+" "+ТекущаяСтрока["НДС"]); //отображаются такие же данные как и в первом цикле! КонецЦикла;
8-ка <> 7-ке *на скрине реквизиты формы, но не реквизиты объекта
Да, пытаюсь мыслями 7-ки обуздать это дело. На скрине реквизиты формы, так и есть, просто считал, что к ним можно обратиться напрямую, а оказывается только через запрос к регистру сведений, верно? А каким образом тогда в обратном порядке - если мне нужно программно записать некие данные ( ну присвоить номенклатуре какой то СчетУчетаБУ например, чтобы его было видно в форме элемента Номенклатуры?
Есть такой регистр сведений "СчетаУчетаНоменклатуры" (ну или созвучный). Можете кстати в конфигураторе это увидеть. Делается запрос к этому регистру со ссылкой на элемент номенклатуры.
Да есть, увидел. Как мне кажется какой то длинный путь через запрос и перебор всего регистра, нет? Но неужели нет инструментов вытянуть это значение из Справочника номенклатура?
Только заметил, что мой скрин, где указан этот реквизит, удалили). Вставляю по новой, согласно ПРАВИЛАМ.
Предопределенные элементы плана счетов можно подсмотреть в конфигураторе.
Не то немного, Вы не поняли. Хочу брать не из БазаОле, а из восьмерки, те данные, которые прописаны в номенклатуре, тем более с одинаковыми именами и типами, как "добраться" туда не пойму(
Здравствуйте. Возникла необходимость переносить некоторые документы из ТиС 7,7 в УТП 1.2 8.3 . В общем обработку написал- подключаюсь из 8 в 7,7 и оттуда забираю что мне нужно, кроме некоторых нюансов, которые я пока еще не освоил в силу того, что только начал изучать платформу v8.х . Не могу взять данные из реквизитов формы справочника Номенклатура (так вроде они в 8 зовутся) и прописать их в одноименные поля ввода в табличной части документа (пока речь идет о ПоступТоваровУслуг). На скрине СчетУчетаБУ - в форме спр.Номенклатура. Вот его нужно прописать в поле ввода в табл.части СчетУчетаБУ
вот часть кода
Найден= Док.НайтиПоНомеру(олеДок.НомерДок,ДатаНач); Если Найден.Пустая()=0 тогда
Д=Найден.ПолучитьОбъект(); // ПоступлениеТоваровУслуг олеДок.ВыбратьСтроки(); Д.Товары.Очистить(); Пока олеДок.ПолучитьСтроку()=1 Цикл СтрокаТовара=Д.Товары.Добавить(); СтрокаТовара.Номенклатура=СПРТов.НайтиПоКоду("0000"+олеДок.Товар.Код); СтрокаТовара.Количество=олеДок.Количество;
Может кто сталкивался? Пытаюсь выгрузить из Комплексной 7,7 при помощи V77Exp.ert спр.Номенклатура- в итоге после перебора определенного количества элементов ( видно на табло) выбрасывает из 1с ((. Пробовал в условиях задавать отбор одного элемента, то в этом случае элемент с кодом 00001 выгрузился нормально, а например с кодом 01235 нет, так же выкинуло с базы. А контрагенты выгрузились нормально, хотя их тоже не мало. В чем причина не могу понять
Что-то никак не хочет ОЛЯ со мной подружиться). Но все равно докручу, хотя бы ради собственного развития что-ли уже. Пока мучаюсь с этим всем, понаписывал параллельно обработок обмена через ДБФ- в принципе работает, но хочется "жити по-новому" так сказать)). Вот какая закавыка сейчас донимает- не могу найти док. по ОЛЕ. "ОлеСчет - Не выбран документ" и все тут, хотя он есть. Что не так подскажите?
Пока Док.ПолучитьДокумент()=1 Цикл Если (Док.Вид()= "Счет") тогда олеДок.НайтиПоНомеру(Док.НомерДок,ДатаОтчета,"Счет"); олеСчет=ОлеДок.ТекущийДокумент(); олеКл.НайтиПоКоду(Док.Контрагент.Код,0); олеСчет.Контрагент=олеКл.ТекущийЭлемент(); //......................................... олеСчет.Записать(); Сообщить("Обновлен"+олеСчет.ПредставлениеВида()+" №"+СокрЛП(олеСчет.НомерДок)+" от "+Шаблон("[олеСчет.ДатаДок]"));
Во-первых параметры Метода УстановитьВремя - числовые выражения, у Вас форматная строка. Для поиска ошибок и решения проблем существует отладчик. Посмотрите чему равен параметр СР после первого цикла. Вы складываете строку с числом. Даже если бы он был числом, после семи РН он бы равнялся 70 cool.gif
Так я же вроде в число переформатирую. Но дело не в этом- при назначении ЧР=6; МР=0; СР=0; проблема остается. Подсказали, что это из-за того что в выборке я меняю месторасположение доков и это стопорит цикл, а надо бы так:
Пока РН.ПолучитьДокумент()=1 цикл СР=СР-1; Если (РН.Проведен()=1) тогда Продолжить; КонецЕсли; // РН.УстановитьВремя(06,10,00); РН.УстановитьВремя(ЧР,МР,СР); РН.Записать(); РН.Провести(); Сообщить ("Проведена"+ " "+РН+" "+РН.Контрагент); КонецЦикла;
КонецПроцедуры //УстРН()
Цитата(sava1 @ 10.05.16, 14:20)
Выборка в цикле сбивается. Юзайте аа.ПолучитьДокумент(РН.ТекущийДокумент) и далее работаем с аа
Тоже вариант. Спасибо, попробую так. А то обратная переборка как то не очень мне нравится.
Имеется потребность обработкой кой-чего поправить в РасхНакл и сдвинуть их по времени. С первым понятно все, а вот на моменте установки времени цикл останавливается и все. Как я только не изголялся с передачей параметров - ничего не получается. Одному доку меняет время и все, надо запускать процедуру по новой! Даже назначение времени "в лоб" типа док.УстановитьВремя(06,00,00) ничего не дает. PS Документы все либо проведены, либо записаны. Помеченных на удаление нет, поэтому проверка на исключение удаленных не проводится !
Процедура УстРН() ЧР = Формат(06,"Ч2.0"); МР = Формат(10,"Ч2.0"); СР = Формат(00,"Ч2.0"); Фирм=СоздатьОбъект("Справочник.Фирмы"); Рн=СоздатьОбъект("Документ.Т_РасходнаяНакладная"); РН.ВыбратьДокументы(Дата1,Дата2); Пока РН.ПолучитьДокумент()=1 цикл
Если (РН.Проведен()=1) тогда Продолжить; КонецЕсли; // РН.УстановитьВремя(06,10,00); РН.УстановитьВремя(ЧР,МР,СР); РН.Фирма=Константа.БазФирма; РН.ВидНДС=Константа.БазНДС; РН.Склад=Константа.ОсновнойСклад; РН.ВидТары=Перечисление.ВидыТары.Покупная;
Если Вы успешно пошаманили с кодами баз(т. е. получили "правильные" заголовки файлов обмена), то ничего никуда вытаскивать не нужно - УРБД сама проведет обмен. Остается только после изменений конф удалять из 1supdts записи с пустыми TYPEID и OBJID.
Я не знаю насколько успешно у меня получилось, прошу "проинспектировать"). вот мой алгоритм действий: 1. Поднял УРБД в базе, из которой надо выгружать. Периферийную назначил как "только получатель" (на всякий случай) 2. В конце раб. дня делаю выгрузку из Головной базы, далее раскладываю обновленный файл АПДЕЙТС и вытягиваю оттуда инфу об объектах которые изменялись, записываю данные в другой файл (экспорт.дбф) в соотв. колонки : ТИП НомерДок Датадок (считаю достаточно). 3. Через ОЛЕ обрабатываю уже Экспорт.ДБФ и переношу соотв. документы в другую конфу по нужным мне правилам. 4. Делаю выгрузку из Периферийки и загружаю квитанцию в Гол. базу для подтверждения полученных изменений и автоматической очистки АПДЕЙТС. А вот что Вы имели ввиду под "УРБД сама проведет обмен" я не понял. Если каким то образом возможно "вклиниться" в УРБД и заставить преносить данные в принципиально другую конфу, без таких телодвижений как я описал- то это высший пилотаж для меня....
Цитата(V..I..P @ 13.04.16, 10:53)
Alex007, Из ЗначениеВСтрокуВнутр() можно получить УИД объекта и хранить в реквизите базы приемника. В таблицах УРБД хранится ссылка на объект, там нет изменений для этого объекта.
А вот для проверки изменений, я думаю понадобится что-то типа "РигистрСведений" и в каждой форме документа/справочника в процедурах "ПриЗаписи()" создать гл. процедуру в которой нужно сравнить Объект и Ссылку на отличия. Была такая наработка на просторах 1СРР.ру. Как называется, не помню. Но что-то типа Детальное логирование объектов в Access
Честно говоря, задача несколько посложнее чем вариант с шаманством по УРБД и думаю, мне не под силу такое провернуть и главное- качественно отладить! А вот какое-то уникальное идентифицирование объекта (документа прежде всего) мне прийдется внедрить. Пока не знаю как. У нас часто возникает такая ситуация- есть например Док № АА-0000325 от 10.04.2016 Клиент.Код=0001, из него могут сделать АА-000032ъ от 11.04.2016 (чтоб не сбивать нумератор и освободить номер) ,а освободившийся № АА-0000325 присвоить доку с Клиент.Код=0002 скажем. Как правильно идентифицировать эти доки я не могу понять. Как вариант- хочу попробовать создать реквизит ИД (тип строка) в обеих базах и ТОЛЬКО в процедурах ВводНового(), вводНаосновании() присваивать ему что-то типа ИД=Строка(НомерДок+ТекущаяДата()+ТекущееВремя());
V..I..P @ Сегодня, 18:20 , Минусик имеется тут. Если юзверь поменял номер к примеру, то все, куку? Необходимо ID какой-то прописывать тогда всем докам и что-то ему присваивать в ВводНового()? И еще , почему УРБД рассматривал- юзер может от нечего делать х-раз просто открыть и записать док и в этом случае получим кучу ненужных файлов и оле-переносов, а урбд по итогу одну запись сделает в АПДЕЙТС. Но гемора с этим уриб конечно в разы...
Подсказка: УРБД. Таблица 1supdts содержит список ИД измененных объектов данных. Каждую из двух баз сделать центральной. Для каждой создать базу - только приемник. Настроить мирацию объектов данных как надо (для каждой миграция чего надо только в эту самую периферийку - как будто в другую базу данных). Когда надо - читать из 1supdts список "чего надо вігружать", "раскручивать" по ID объектов до примитивных значений реквизитов и в нужном формате выгружатью Каковую выгрузку - загружать в приемник. И чистить 1supdts. Плюс опциональн (и возможно) крутить в прочих урбд-кишочках маркеры-номра-признаки выполненных обменов. А в-общем, задача далеко не тривиальная. Хотя и вполне решаемая. Лично я - делал, по каковой причине с этими глупостями сюда и вылезаю.
Проделал все манипуляции с УРБД. Алгоритм ясен, хочу спросить- каким образом "вытаскивать" данные об измененных объектах из 1supdts? Нет ли у вас примера или кусок модуля для этой манипуляции? Все что я нашел это вот: http://kb.mista.ru/article.php?id=45 Но там просто сообщение на табло выводится об изм. объектах. А надо это все в файл засовывать для дальнейшей обработки насколько я понимаю?
ruflex @ Сегодня, 1:25 , У меня такая же история. Но я не пугаюсь, если в медок все нормально загрузилось, то и ляд с ним. В следующем обновлении поправят.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!