Вопрос № 100068: День добрый!
Ситуация: программно создаю документы перемещение спецодежды
Дата(документа) 01/06/2007 текущая дата 27/08/2007. месяц __06_2007 еще не закрывали (раскручен архив где тренируюсь).(версия 7.7)
кусок кода
документы со...Вопрос № 100069: дравствуйте ув. Эксперты!
Вопрос №1:
1. Есть терминал сбоора данных, которым пересчитали товары и выгрузили это в документ - "ИнвентаризацияТМЦ", документ создается самой обработкой и заполняет все колонки табличной части документа<...Вопрос № 100076: Доброго времени суток господа эксперты. Проблема следующая, где в 1с 7.7 "Бухгалтерия для бюджетных учреждений ред. 6" (613) находится шаблон платежного поручения, никак не могу найти. Заранее благодарен....Вопрос № 100098: Дорогие экперты. Есть новый вопрос по УРИБ-у: что нужно сделать, чтобы измененные документы в центральной конфигурации заменялись при загрузке неизмененными из подчиненной. В общем ситуация такая: обычно из подчиненной закружают в центр, проверяют, и...Вопрос № 100114: Эдравствуйте, уважаемые эксперты. как в восьмерке при изменении элемента справочника получить значение его реквизита, ну
например наименование. Мне конфигуратор говорит, что нет такого.
Стандартное поле наименование на форме есть;
а пишу я <b...Вопрос № 100121: Здравствуйте, я начинающий прграммист 1С, столкнулся с некоторыми проблемами:
1. Как заполнить документ табличную часть? Необходимо по наменованию справочника заполнить всю строку табличной части, но в реквизитах справочника есть поле которое бер...Вопрос № 100172: Здравствуйте! Может у меня подобная ошибка как в Вопросе N 97.694.... Но я уже всё перепробовала.... Вот строка текста программы, на которой выдается ошибка: <font color=red><i>Отредактировано Часть вопроса перенесена в приложени...
Вопрос № 100.068
День добрый!
Ситуация: программно создаю документы перемещение спецодежды
Дата(документа) 01/06/2007 текущая дата 27/08/2007. месяц __06_2007 еще не закрывали (раскручен архив где тренируюсь).(версия 7.7)
кусок кода
документы создаются проводки в журнале есть.
Грабли в следующем ---
когда расчитываю аммортизацию ДАТА 30/06/2007 (конец месяца)
там такой код
БухИт10.ВыполнитьЗапрос(НачМесяца(ДатаДок), , "10.11",,,,,);
(как я понял запрашиваются БИ на 01/06/2007)
но у меня эти итоги по новым данным из справочника НазначенияИспользования не беруться (лазил отладчиком).
расчитываю аммортизацию ДАТА 31/!!! 07!!!/2007 все считается!!!!!!! Получается что у меня эти проводки от 01/06/2007 не входят в БИ . В чем хитрость?
может УстановитьВремя мне как-то поможет?
Да документы признак проведен не ставил.
С уважением Юрий.
Отвечает: Ромашов Евгений Николаевич
Здравствуйте, Железнов Юрий!
все правильно амортизация считается со следующего месяца, т.е то что вводится в июне только в июле начнет считаться
Ответ отправил: Ромашов Евгений Николаевич (статус: 4-ый класс)
Ответ отправлен: 29.08.2007, 08:19 Оценка за ответ: 3 Комментарий оценки: Спасибо. Но я делаю ПЕРЕМЕЩЕНИЕ и мне нужно в этом же месяце сделать начисление аммортизации. Спецодежда УЖЕ в эксплуатации. Все равно спасибо.
Отвечает: Vlad Skorochod
Здравствуйте, Железнов Юрий!
Вообщето по закону:
Начисление амортизации по объекту амортизируемого имущества начинается с 1-го числа месяца, следующего за месяцем, в котором этот объект был введен в эксплуатацию.
Так что лучше не копать в конфигурации, а или поставить дату на конец предыдущего месяца, или объяснить бухгалтеру, что амортизация будет считаться со следующего месяца.
Приложение:
Ответ отправил: Vlad Skorochod (статус: 7-ой класс)
Ответ отправлен: 29.08.2007, 09:36 Оценка за ответ: 4 Комментарий оценки: Влад, спасибо за информацию. Наверно я чуть неправильно задал вопрос. На спец одежду УЖЕ начисляется аммортизация. Если по анологии (насколько я знаю) с ОснСредствами ,то когда передаем в другое подразделение или материальщику аммортизация начисляется. А с БухИтогами для меня не понятно - получается что они считаются на 00ч00мин00сек 01.месяц.год. ? Спасибо.Почитаю
НК.
Отвечает: Татьяна Ласовская
Здравствуйте, Железнов Юрий!
Вообще-то, тут есть нюансы. Vlad Skorochod не дочитал налоговый кодекс, поскольку там есть еще "Статья 256. Амортизируемое имущество", которая гласит: "Амортизируемым имуществом признается имущество со сроком полезного использования более 12 месяцев и первоначальной стоимостью более 10 000 рублей." Сомневаюсь, что срок использования спецодежды более 12 месяцев (чаще всего 1-6 месяцев), а чтобы стоимость единицы за шкаливала за 400 долларов - так такого и не припомню за все семь лет, которые
занимаюсь автоматизацией бухучета. Статья 259 относится к основным средствам и нематериальным активам. Спецодежда же относится к материальным расходам (статья 255), и указанные правила расчета амортизации к ней не относятся. Ссылка на налоговый кодекс - в приложении.
Теперь ответ на вопрос:
Если вы создаете документы перемещения спецодежды датой 01.06.2007, то для того, чтобы они попали в итоги, нужно брать итоги на конец дня 01.06.2007.
При использовании конструкции БухИт10.ВыполнитьЗапрос(НачМесяца(ДатаДок), , "10.11",,,,,); итоги наверняка берутся на начало дня ("на утро") 01.06.2007, т.е. включают в себя все движения, произведенные по 31.05.2005 включительно. Просмотрите код, который идет после запроса. Там используется
БухИт10.СНД - т.е. сальдо начальное дебетовое, на начало дня. Замените его на БухИт10.СКД, а в запросе проставьте второй параметр такой же , как и первый (запрос будет выглядеть так: БухИт10.ВыполнитьЗапрос(НачМесяца(ДатаДок),НачМесяца(ДатаДок) , "10.11",,,,,)) - и заработает у вас модуль так, как вы хотите.
Приложение:
Ответ отправила: Татьяна Ласовская (статус: 9-ый класс)
Ответ отправлен: 29.08.2007, 10:12 Оценка за ответ: 5 Комментарий оценки: Татьяна , спасибо за ответ.Придется или так или проводить 31/месяц. Если вдруг будет ВВОД нового спецодежды и спецоснастки именно 01/месяц (а на такие первый месяц не начисляется). Или делать проверку в документах ввода передача в производство. Скорей всего проверку.Татьяна,еще раз спасибо.
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Железнов Юрий!
БухИт10 считает сальдо ДО НАЧАЛА дня первого числа, (первый параметр НачМесяца(ДатаДок),
а документ у Вас в первом числе, естественно он в итоги не попадает. Вот если бы он был в пятом месяце
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Практикант)
Ответ отправлен: 29.08.2007, 13:04 Оценка за ответ: 4 Комментарий оценки: Владимир Анатольевич, спасибо. Ясно и просто.
Отвечает: Elric
Здравствуйте, Железнов Юрий!
В начальное сальдо 01.06.2007 не включаются проводки за 01.06.2007. Они попадают только в обороты и конечное сальдо.
--------- В творчестве рождается истина
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 29.08.2007, 21:57 Оценка за ответ: 4 Комментарий оценки: Спасибо. Буду знать.
Вопрос № 100.069
дравствуйте ув. Эксперты!
Вопрос №1:
1. Есть терминал сбоора данных, которым пересчитали товары и выгрузили это в документ - "ИнвентаризацияТМЦ", документ создается самой обработкой и заполняет все колонки табличной части документа
Количество факт - из терминала
Количество факт - из регистра остатков
Цена - ВремДок.Цена = ВремЦена.Цена.Получить(ВремДок.ДатаДок)
Ну и т.д.
В общем ситуация такая: сканер при вводе количества товара, например одного и того же записывает в память одинаковые позиции с разным количеством, т.е. мне нужно, чтобы была одна позиция этого товара в документе, но при этом количетво было общее, например:
Сбор данных,ШК+БД,4607001290032,МАСЛО ЗОЛОТАЯ СЕМЕЧКА,13
Сбор данных,ШК+БД,4607001290032,МАСЛО ЗОЛОТАЯ СЕМЕЧКА,12
Одно и то же, а мне нужно, чтобы в документе инвентаризация было такое:
Сбор данных,ШК+БД,4607001290032,МАСЛО ЗОЛОТАЯ СЕМЕЧКА,25
т.е. нужно сделать свертывание как в таблице значений и чтобы количество суммировалось ....
Как это можно сделать?
Вопрос №2:
В стандартной обработке, которая выгружает данные из терминала в документ, почему-то при выгрузке отсекает первые два нуля и первый один:
Сбор данных,ШК+БД,0048327203421,МАСЛО YBARRА 100% 500,3
Сбор данных,ШК+БД,0048327203537,МАСЛО ОЛИВКОВОЕ YBARRA,2
Сбор данных,ШК+БД,0718122031207,МАСЛО ОЛИВКОВКОВОЕ EV,1
Код программы:
//Если Сред(ВремШт,1,2) = "00" Тогда
// ВремШт = Сред(ВремШт,3);
// Рез = ВремЕд.НайтиПоРеквизиту("ШтрихКод", ВремШт, 1);
// ВремТовар = ВремЕд.ТекущийЭлемент().Владелец;
//ИначеЕсли Сред(ВремШт,1,1) = "0" Тогда
// ВремШт = Сред(ВремШт,2);
// Рез = ВремЕд.НайтиПоРеквизиту("ШтрихКод", ВремШт, 1);
// ВремТовар = ВремЕд.ТекущийЭлемент().Владелец;
//Иначе
// Не понял почему,но если один или два нуля в начале
// штрих-кода то они отсекаются
Если Лев(ВремШт, 2) = "22" Тогда
ВремТовар = СоздатьОбъект("Справочник.Номенклатура");
Рез = ВремТовар.НайтиПоКоду("000" + Сред(ВремШт,3,5), 0);
Если Рез=0 Тогда
Сообщить("Товар с кодом "+Сред(ВремШт,3,5)+" не найден");
Продолжить;
КонецЕсли;
ВремЕд = ВремТовар.БазоваяЕдиница;
ВремСтр = Число((Сред(ВремШт, 8, 5))) / 1000;
Иначе
Рез = ВремЕд.НайтиПоРеквизиту("ШтрихКод", ВремШт, 1);
ВремТовар = ВремЕд.ТекущийЭлемент().Владелец;
КонецЕсли;
У этих товаров получается штрих-код
48327203421
48327203537
718122031207
Получае6тся так, что эти товары не заносятся в табличную часть документа, поэтму я эту часть кода закомментировал .....
Как вы думаете, для чего отсекались нули?
Я вообще понять не могу ....
Наш префикс "22" - тип товара - весовой - это понятно мне ....
Отправлен: 29.08.2007, 07:44
Вопрос задал: _Alexey_ (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Полозов Олег aka Asher
Здравствуйте, _Alexey_!
Ну так а что мешает заточить обработку под себя?
Я так понял с ТСД залетает текст с разделителями который можно конвертнуть в табличку, а потом табличку свернуть. чтобы потом не париться с кодом, табличку можно опять выгрузить в текст с разделителями вот и все.
Если нужен код пиши в аську 280666057
Ответ отправил: Полозов Олег aka Asher (статус: 9-ый класс)
Ответ отправлен: 29.08.2007, 10:10 Оценка за ответ: 5 Комментарий оценки: Да, свернуть надо ... Но вопрос не только в этом заключался ..
Отвечает: Владимир Лазурко
Здравствуйте, _Alexey_!
Дам ответ только на первый вопрос - о плюсовании количества. Вам необходимо использовать поиск по коду или наименованию найденного по штрих-коду товара. Это выглядит примерно, как обработка подбора в накладную - если товар уже присутствует в накладной, то суммируется количество из накладной с уже подобранным.
В Торговле для Украины в модуле формы процедура ОбработкаПодбора вызывает процедуру глПриОбработкеПодбора, которая в зависимости от переданного контекста вызывает глДобавитьТоварВДокумент с различными параметрами.
Ответ отправил: Владимир Лазурко (статус: Заблокирован)
Ответ отправлен: 29.08.2007, 14:39 Оценка за ответ: 5 Комментарий оценки: А как я могу программно проверить, есть ли уже такой товар, с таким-то количеством в накладной? По моему это можно делать только в тз.. Проще сначала все выгружать в таблицу значений, а потом уже в документ инвентаризация, пока других вариантов не вижу, а работа с табличной частью документа - да в ней вообще нельзя получить какую-то там позицию, колонку
и т.д. или еще что-то ....
Отвечает: Elric
Здравствуйте, _Alexey_!
1. Чтобы строки табличной части сворачивались (количество суммировалось), достаточно в конце зугрузки добавить такие строки:
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗ);
ТЗ.Свернуть("<Перечислить колонки через запятую>","<Перечислить суммируемые колонки через запятую>");
ЗагрузитьТабличнуюЧасть(ТЗ);
2. По первым символам "00", "0" или "22" определялось, нужно искать штрихкод в справочнике единиц измерения или в справочнике Номенклатура. Эти два нуля -- не часть штрихкода, а признак.
--------- В творчестве рождается истина
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 29.08.2007, 21:50 Оценка за ответ: 5 Комментарий оценки: Именно такой метод я вчера и применил ....
Вопрос № 100.076
Доброго времени суток господа эксперты. Проблема следующая, где в 1с 7.7 "Бухгалтерия для бюджетных учреждений ред. 6" (613) находится шаблон платежного поручения, никак не могу найти. Заранее благодарен.
Дорогие экперты. Есть новый вопрос по УРИБ-у: что нужно сделать, чтобы измененные документы в центральной конфигурации заменялись при загрузке неизмененными из подчиненной. В общем ситуация такая: обычно из подчиненной закружают в центр, проверяют, изменяют и отсылают обратно. Но получилось так, что получили, изменили и забыли выгрузить и отослать, потом действуют как обычно, но при загрузке из подчиненной изменения не отменяются, т.е. в центре изменено, а в подчиненной нет... Миграция у документов установлена
на "Место создания и центр".
Отправлен: 29.08.2007, 12:08
Вопрос задала: Elevit (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Яна
Здравствуйте, Elevit!
Суть центральной базы как раз в том, что данные в ней ВАЖНЕЕ данных в филиале. И если в центральной сделаны изменения, то они должны попасть в остальные базы. А от склероза хорошо помогают напоминания и автоматические обмены.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 29.08.2007, 12:14
Отвечает: Трифанюк Александр Дмитриевич
Здравствуйте, Elevit!
Это не возможно.
Суть ЦБ в том то и закключается чтоб всё что делалось в ней менялось РБ, сколько их бы там ни было. Но никак не наоборот.
Эдравствуйте, уважаемые эксперты. как в восьмерке при изменении элемента справочника получить значение его реквизита, ну например наименование. Мне конфигуратор говорит, что нет такого.
Стандартное поле наименование на форме есть;
а пишу я
Сообщить(наименование)
Отправлен: 29.08.2007, 14:24
Вопрос задал: BigHard (статус: Студент)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Ответ отправил: Vovchai (статус: 3-ий класс)
Ответ отправлен: 29.08.2007, 14:29 Оценка за ответ: 5 Комментарий оценки: большое спасибо!!!
Отвечает: Яна
Здравствуйте, BigHard!
При изменении в форме или программно?
1. В процедуре ПередЗаписью можно сравнить старое и новое значение реквизитов и при необходимости вывести Наименование. Сообщить(Наименование). Если Наименование - переменная, описанная в этой процедуре, то стоит написать ЭтотОбъект.Наименование или Ссылка.Наименование.
2. Почитайте справку по слову Оповестить().
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 29.08.2007, 19:14 Оценка за ответ: 5 Комментарий оценки: большое спасибо!!!!!!!!
Отвечает: Ромашов Евгений Николаевич
Здравствуйте, BigHard!
посмотреть в свойствах длину наименования если она = 0 то наименования нет
Здравствуйте, я начинающий прграммист 1С, столкнулся с некоторыми проблемами:
1. Как заполнить документ табличную часть? Необходимо по наменованию справочника заполнить всю строку табличной части, но в реквизитах справочника есть поле которое берется из другого справочника.
2. Как по артикулу заполнить документ например реализация? Т.е. есть список (прайс) с артикулами и справочник с теми же артикулами нужно как сравнить артикулы и если есть такой Контрагент то взять его из справочников.
Заранее спасибо.
Отправлен: 29.08.2007, 14:57
Вопрос задал: Diamondes (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Elric
Здравствуйте, Diamondes!
1. Когда элемент справочника Абонент выбран, далее для заполнения табличной части просто обращаешься к реквизитам табличной части и справочника. Например:
Цена=Абонент.Цена;
ТипДоговора=Абонент.ТипДоговора;
(здесь слева идентификатор реквизита табличной части, а справа -- обращение к реквизитам справочника)
К реквизиту Абонента типа справочник (ТипДоговора) обращаешься так же, как и к любому другому реквизиту. Единственное что, если тебе нужно обратиться к реквизиту реквизита, то это можно сделать так:
НаименованиеТипаДоговора=Абонент.ТипДоговора.Наименование;
2. Используйте метод НайтиПоКоду(). Например:
Спр=СоздатьОбъект("Справочник.Номенклатура"); // или ТМЦ -- посмотрите в Вашей Конфигурации
Если Спр.НайтиПоКоду(КодИзФайла,0)=0 Тогда Сообщить("Ошибка") Иначе Сообщить("Найдена номенклатура "+Спр.ТекущийЭлемент()) КонецЕсли;
--------- В творчестве рождается истина
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 29.08.2007, 21:30 Оценка за ответ: 5 Комментарий оценки: Большое спасибо Оперативно. Подробно. Будем пробовать
Вопрос № 100.172
Здравствуйте! Может у меня подобная ошибка как в Вопросе N 97.694.... Но я уже всё перепробовала.... Вот строка текста программы, на которой выдается ошибка:
Отредактировано Часть вопроса перенесена в приложение [И. К. Цикалов]
Если вместо выражения в конце (деления) я просто ставлю число какое-нибудь, то всё работает (но естественно не с теми результатами) Умножение
и т.д. уже не работает и выдаёт такую же ошибку. Уже не знаю, что делать. (версия тоже 8.0)
Отвечает: Яна
Здравствуйте, Ларионова Евгения Валерьевна!
Кроме Null бывает еще Неопределено и 0. В типовых есть замечательная функция ЗначениеНеЗаполнено(Параметр), которая выовращает истину в любом из этих 3х случаев. Кроме того в поле количество остаток может быть какой-то странный тип, например СправочникСсылка - но это маловероятно. Для эксперимента можно перед этой строкой написать что-то типа Сообщить(ТипЗнч(ВыборкаРезультатаЗапроса.КоличествоОстаток));
Я думаю результат может оказаться интересным.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 29.08.2007, 22:47
Отвечает: Sim_tm
Здравствуйте, Ларионова Евгения Валерьевна!
Ну логичтно предположить, что либо ВыборкаРезультатаЗапроса.СтоимостьОстаток, либо ВыборкаРезультатаЗапроса.КоличествоОстаток у Вас не являются числовыми. с учетом того что вы их вытягиваете из запроса, то скорее всего что-то из них равняется NULL. Посмотрите в отладчике на чем оно падает.
ps
операцией ВыборкаРезультатаЗапроса.СтоимостьОстаток/ВыборкаРезультатаЗапроса.КоличествоОстаток Вы скорее всего хотите получить не СтоимостьМатериала, а Цену.
ps2
Вместо такой проверки ВыборкаРезультатаЗапроса.КоличествоОстаток=Null логичнее в самом тексте запроса использовать оператор ЕСТЬNULL(ВыборкаРезультатаЗапроса.КоличествоОстаток,0)
Приложение:
Ответ отправил: Sim_tm (статус: 1-ый класс)
Ответ отправлен: 29.08.2007, 22:58
Отвечает: Elric
Здравствуйте, Ларионова Евгения Валерьевна!
Замените эту строку на следующую:
СтоимостьМатериала=?((ВыборкаРезультатаЗапроса.КоличествоОстаток=Null) Или (ВыборкаРезультатаЗапроса.СтоимостьОстаток=Null),0,Выбор
каРезультатаЗапроса.СтоимостьОстаток/ВыборкаРезультатаЗапроса.Коли
чествоОстаток);
У Вас точно ВыборкаРезультатаЗапроса.СтоимостьОстаток равно Null, потому и ошибка.
Ответ отправил: Dmitry Stashenko (статус: 9-ый класс)
Ответ отправлен: 30.08.2007, 11:15 Оценка за ответ: 3 Комментарий оценки: пробовала, не сработало
Отвечает: BigHard
Здравствуйте, Ларионова Евгения Валерьевна!
Можно просто попробовать:
СтоимостьМатериала=?(ВыборкаРезультатаЗапроса.КоличествоОстаток=Null,0,
Число(ВыборкаРезультатаЗапроса.СтоимостьОстаток)/число
(ВыборкаРезультатаЗапроса.КоличествоОстаток));
--------- Чем отличается чайник от программиста: У чайника в одном килобайте 1000 байт, а у программиста в одном километре 1024 метра
Ответ отправил: BigHard (статус: Студент)
Ответ отправлен: 02.09.2007, 16:40