Вопрос № 119537: В справочнике номенклатура существует несколько уровней папок, элементы сгруппированы по разным свойствам. В форме выбирается элемент из какой либо папки. Необходимо перебрать все элемнты, которые также находятся в этой папке.
Заранее спасибо....Вопрос № 119538: Здравствуйте, господа эксперты.
Подскажите, пожалуйста, что попробовать изменить в запросе.
В версии базы DBF запрос работает на УРА, выдавая Запрос.Количество в зависимости от условий.
В SQL версии базы условие не срабатывает, выдав...Вопрос № 119541: Доброго Вам дня, уважаемые эксперты.
Прошу помочь в такой ситуации. Делаю загрузки из ТП 4.х в Бухгалтерию (v7.7) Участок кода в приложении. Выводит ошибку Док.ЗаписатьПроводки(); .... : Номер не уникальный! Всю голову уже сломал....Вопрос № 119569: Доброго времени суток!
Релиз платформы 7.70.027.
Иногда при выполнении сложных отчетов выдается сообщение:
"Доступ к файлу безымянный файл закрыт" и система уходит в бесконечную задумчивость или 1с аварийно снимается. С более ра...Вопрос № 119598: Уваж.народ, помогите в одном деле.
справочник-товары, в списке номенклатуры, надо показать текущие остатки.
Создал в спец. списке "ДляВыбора", "вычисляемую колонку"-остат, в модуле формы списке написал процедуру приоткрыт...Вопрос № 119634: Привет!
Такой вопрос: Есть справочник "Цеха" подчиненный ему справочник "бригады" , документ допустим "передача смены"
Как при выборе элемента справочника "Бригады" из документа "передача смены&quo...Вопрос № 119670: Как в 1с 7.7 реализовать одномерный массив чисел (объявление, помещение в него чисел и извлечение)? Размер массива заранее не известен.
конкретно: в этот массив должны накапливаться коды сотрудников, сколько их будет - не знаю. потом коды будут и...Вопрос № 119722: День добрый. Вопрос совсем простой, но методом научного тыка я его не решил. Есть книга по 7.5, там пример процедуры проводки
Процедура ОбработкаПроведения()
Пока ПолучитьСтроку() = 1 Цикл
Операция.НоваяПроводка();
Операция.Кред...
Вопрос № 119.537
В справочнике номенклатура существует несколько уровней папок, элементы сгруппированы по разным свойствам. В форме выбирается элемент из какой либо папки. Необходимо перебрать все элемнты, которые также находятся в этой папке.
Заранее спасибо.
Отправлен: 21.01.2008, 12:03
Вопрос задал: Sol666 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Gl0betrotter
Здравствуйте, Sol666!
Пусть имя идентификатора выбора элемента на форме - ВыбЭлемент. Тогда код перебора всех элементов справочника, входящих в ту же группу, что и выбранный элемент, будет таким:
Спр=ВоздатьОбъект("Справочник.Номенклатура"); Спр.ИспользоватьРодителя(ВыбЭлемент.Родитель); Спр.ВключатьПодчиненные(1); // на случай, если имеются вложенные группы Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()>0 Цикл // здесь добавьте необходимые действия КонецЦикла;
Удачи!
--------- Today is a good day to die, aren't you?
Ответ отправил: Gl0betrotter (статус: Практикант)
Ответ отправлен: 21.01.2008, 12:13
Отвечает: Maximush
Здравствуйте, Sol666!
Предположим, что это должно произойти в 7.7, тогда
//___________
спр=СоздатьОбъект("Справочник.Номенклатура");
спр.ИспользоватьРодителя(ВыбНоменклатура.Родитель); //только в той же группе
спр.ВыбратьЭлементы();
Пока спр.ПолучитьЭлемент()=1 Цикл
Сообщить(""+спр.Наименование); //что-то делаем с элементом
КонецЦикла;
//___________
Ответ отправил: Maximush (статус: 1-ый класс)
Ответ отправлен: 21.01.2008, 12:17
Отвечает: DERL.KG
Здравствуйте, Sol666!
// допустим ЭлНом - элемент типа Справочник.Номенклатура на форме где выбирается
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ИспользоватьРодителя(ЭлНом.Родитель);
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
// ваши действия
КонецЦикла;
Ответ отправил: DERL.KG (статус: 8-ой класс)
Ответ отправлен: 21.01.2008, 13:03
Вопрос № 119.538
Здравствуйте, господа эксперты.
Подскажите, пожалуйста, что попробовать изменить в запросе.
В версии базы DBF запрос работает на УРА, выдавая Запрос.Количество в зависимости от условий.
В SQL версии базы условие не срабатывает, выдавая 0, словно ни один документ запроса не попадает в писок значений. Единственный вариант, при котором он захотел работать, это замена стандартного условия на вызов внешней функции вне запроса, возвращающей 1 или 0 в зависимости от того, спсДокО.Принадлежит(Док) = 1 или =0. То есть
|Условие (ЕстьДокумент(Док,спсДокО)=1);
Вероятнее всего этот вопрос всплывал где-либо в интернете, не могут это быть мои первые грабли. База тестировалась и исправлялась, всё перепроводилось. Даже в sql на случай ядерной войны был запущен dbcc checkdb(...,repair_rebuilt). По-видимому, SQL не нравится сам список значений. Можно ли победить данный глюк и вернуть штатное условие Док в спс? Просто чтобы больше не попадаться.
Отвечает: DERL.KG
Здравствуйте, Ушаков Михаил Андреевич!
Перед Запрос.Выполнить()
добавьте еще Запрос.ВключитьSQL(0);
работать запрос должен правильно, но медленнее чем в DBF
Ответ отправил: DERL.KG (статус: 8-ой класс)
Ответ отправлен: 21.01.2008, 12:52 Оценка за ответ: 5 Комментарий оценки: Спасибо!!! Действительно, запрос отработал корректно, но медленнее, чем с внешней функцией в условии. Так что, осознавая путь решения, останусь при найденном. :с)
Отвечает: Сергей Максименко [Elric]
Здравствуйте, Ушаков Михаил Андреевич!
Как вариант, перепишите строку с условием таким образом: |Условие (спсДокО.Принадлежит(Док) = 1);
(перенес свой комментарий из мини-форума)
--------- В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал) Украина, Киев Тел.: (044) 22-88-369 Организация: МАКСЕР, "1С:Предприятие" в Киеве Адрес: г. Киев WWW:www.makser.com.ua ---- Ответ отправлен: 21.01.2008, 14:36 Оценка за ответ: 5 Комментарий оценки: Собственно, для уменьшения строк кода так и сделал.
Вопрос № 119.541
Доброго Вам дня, уважаемые эксперты.
Прошу помочь в такой ситуации. Делаю загрузки из ТП 4.х в Бухгалтерию (v7.7) Участок кода в приложении. Выводит ошибку Док.ЗаписатьПроводки(); .... : Номер не уникальный! Всю голову уже сломал.
Отвечает: DERL.KG !!! Здравствуйте, KripWorland! У себя попробовал, все работает. Попробуйте добавить префикс номеру документа с помощью УстановитьНовыйНомер(<Префикс>)
Ответ отправил: DERL.KG (статус: 8-ой класс)
Ответ отправлен: 21.01.2008, 12:50 Оценка за ответ: 3 Комментарий оценки: Спасибо, конечно, но у операции нет метода УстановитьНовыйНомер. Для документа все было бы правильно, а так...
Помог ответ Vizli из минифорума
Отвечает: Сергей Максименко [Elric]
Здравствуйте, KripWorland!
Все дело в периодичности номеров документов. Как правило это Год. Если Вы работаете в этом году, а Операции присваиваете дату из прошлого года, то нумерация может дублироваться.
Чтобы решить эту проблему, перед созданием Операции устанавливайте Рабочую дату равной предполагаемой дате Операции. Пример у меня в приложении.
Приложение:
--------- В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал) Украина, Киев Тел.: (044) 22-88-369 Организация: МАКСЕР, "1С:Предприятие" в Киеве Адрес: г. Киев WWW:www.makser.com.ua ---- Ответ отправлен: 21.01.2008, 13:18 Оценка за ответ: 5 Комментарий оценки: Спасибо. Абсолютно правильный ответ. Все заработало. именно при загрузке за прошлый год и вылазила эта ошибка,
а при тестировании обработки все было замечательно, т.к. работал в текущем году. Не уловил взаимосвязи. Теперь все понятно. Спасибо.
Вопрос № 119.569
Доброго времени суток!
Релиз платформы 7.70.027.
Иногда при выполнении сложных отчетов выдается сообщение:
"Доступ к файлу безымянный файл закрыт" и система уходит в бесконечную задумчивость или 1с аварийно снимается. С более ранними релизами платформы такой проблемы не было. ОС - Windows XP. Может кто в курсе как с этим бороться?
Отправлен: 21.01.2008, 15:39
Вопрос задал: Игорь К. (статус: 5-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Макаров Сергей Львович
Здравствуйте, Игорь К.!
Попробуйте (предварительно сделав резервную копию) удалить все индексные файлы(*.cdx) из папки базы. И после запустите предприятие в монопольном режиме.
Ответ отправил: Макаров Сергей Львович (статус: 1-ый класс)
Ответ отправлен: 21.01.2008, 15:53 Оценка за ответ: 4 Комментарий оценки: Да-а, если бы было все так просто. Когда база вылетает аварийно, сама система предлагает переиндексировать. четверка - исключительно из-за уважения к Вашему статусу!
Отвечает: Igor_L
Здравствуйте, Игорь К.!
Возможно это связано с нехваткой места для своп-файла или битые сектора на жестком диске...
Также не исключаю работу антивируса, проверяющего DBF и CDX файлы. В таком случае Вам нужно отключить проверку этих файлов.
В любом случае попробуйте произвести тестирование и исправление конфигурации, предварительно удалив все CDX-файлы.
Удачи!
Ответ отправил: Igor_L (статус: 2-ой класс)
Ответ отправлен: 23.01.2008, 09:45 Оценка за ответ: 4 Комментарий оценки: Возможно эта версия релиза некорректно работает со своп-файлом, конкретно под XP. На серваке работает без проблем.
Вопрос № 119.598
Уваж.народ, помогите в одном деле.
справочник-товары, в списке номенклатуры, надо показать текущие остатки.
Создал в спец. списке "ДляВыбора", "вычисляемую колонку"-остат, в модуле формы списке написал процедуру приоткрытии(), нашел остатки по каждому элементу (создал спр.Номенклатура, БИ, выполнил запрос на дату дока,...), все работает в деле, вот НЕ МОГУ ПРИВЯЗАТЬ и показать их в списке справочника. С позиционироваться на каждый элемент справочника.
заранее, спасибо!
Отвечает: Краюшкин Игорь Валерьевич
Здравствуйте, Abdugani abdrimov!
В список "ДляВыбора" вставляете текстовую колонку. В свойствах текста на закладке "Дополнительно" в формулу прописываете ссылку на функци. Например, ПолучитьОстаток(ТекущийЭлемент())
А саму функцию уже пишете по Вашему коду, который работает. ТекущийЭлемент() - параметр, передаваемый в функцию, определяющий элемент списка справочника, для которого идет расчет остатка.
Т.о. каждая видимая строка списка справочника будет рассчитывать остаток.
Ответ отправил: Краюшкин Игорь Валерьевич (статус: Студент)
Ответ отправлен: 21.01.2008, 18:36 Оценка за ответ: 5 Комментарий оценки: ОГРОМНОЕ СПАСИБО !
Вопрос № 119.634
Привет!
Такой вопрос: Есть справочник "Цеха" подчиненный ему справочник "бригады" , документ допустим "передача смены"
Как при выборе элемента справочника "Бригады" из документа "передача смены" сделать отбор по владельцу "Цех" если в документе имеется реквизит "Цех"
Чтоб когда спр "Бригады " открывался для выбора и были видны только записи с владельцем как в документе.
Отвечает: Maximush
Здравствуйте, Чалагаев Иван Григорьевич!
Ответ для платформы 7.7.
Если я все правильно понял, то достаточно в свойствах поля ввода "Бригада" перейти на закладку "Дополнительно"и в параметре "Связан с" установить идентификатор реквизита-владельца: Цех.
В качестве наглядного примера можно посмотреть как организован выбор договора в любом документе типовой конфигурации где есть реквизиты Контрагент и Договор.
Кстати, имеет смысл рассмотреть
ситуации, когда цех меняется в заполненном документе (проверять чтобы в таком случае в документе не осталась бригада из другого цеха). И вообще посмотреть все что крутится вокруг договоров и контрагентов в типовых конфигурациях.
Ответ отправил: Maximush (статус: 1-ый класс)
Ответ отправлен: 21.01.2008, 22:32
Отвечает: DERL.KG
Здравствуйте, Чалагаев Иван Григорьевич!
На реквизит "Цех" в документе укажите в формуле Бригады.ИспользоватьВладельца(Цех);
Ответ отправил: DERL.KG (статус: 8-ой класс)
Ответ отправлен: 22.01.2008, 07:16
Отвечает: Яна
Здравствуйте, Чалагаев Иван Григорьевич!
Ответ для платформы 8.0. В свойствах поля ввода "бригада" установить связь по владельцу и указать "Цех".
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 26.01.2008, 14:31
Вопрос № 119.670
Как в 1с 7.7 реализовать одномерный массив чисел (объявление, помещение в него чисел и извлечение)? Размер массива заранее не известен.
конкретно: в этот массив должны накапливаться коды сотрудников, сколько их будет - не знаю. потом коды будут извлекаться, опять же хотелось бы узнать на этом этапе размер массива
Отвечает: DERL.KG
Здравствуйте, Сергеев Александр!
Тогда лучше используйте СписокЗначений, заодно можно и текстовое представление дать например в виде наименования сотрудников...
С = СоздатьОбъект("СписокЗначений");
///*---
С.ДобавитьЗначение(<значение>,<тектовое представление>);
// и так далее
// можно пробежать циклом по списку:
Для к = 1 по С.РазмерСписка() Цикл
Стр = "";
Код = С.ПолучитьЗначение(к,Стр);
КонецЦикла;
Ответ отправил: DERL.KG (статус: 8-ой класс)
Ответ отправлен: 22.01.2008, 07:10 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Dervish
Здравствуйте, Сергеев Александр!
Думаю для решения этого вопроса лучше использовать СписокЗначений
Ответ отправил: Dervish (статус: 2-ой класс)
Ответ отправлен: 22.01.2008, 09:41
Отвечает: Сергей Максименко [Elric]
Здравствуйте, Сергеев Александр!
Вам уже порекомендовали использовать СписокЗначений. Он подходит для отномерного массива. Если же измерений больше, лучше использовать объект ТаблицаЗначений. Кстати, появляются дополнительные возможности: получение итогов по колонкам, сортировка по произвольной колонке, сворачивание по произвольным колонкам.
Приложение:
--------- В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал) Украина, Киев Тел.: (044) 22-88-369 Организация: МАКСЕР, "1С:Предприятие" в Киеве Адрес: г. Киев WWW:www.makser.com.ua ---- Ответ отправлен: 22.01.2008, 10:30 Оценка за ответ: 5 Комментарий оценки: Спасибо. Может когда и пригодится
Используй СписокЗначений
Для долговременного хранения можно воспользоваться методами
Стр = СписокЗначений.ВСтрокуСРазделителями();
СписокЗначений.ИзСтрокиСРазделителями(Стр);
И хранить в текстовом файле.
Размер можно получить методом СписокЗначений.РазмерСписка()
--------- Отвечаю только на вопросы в тему.
Ответ отправил: Крюков Р.А. (статус: 3-ий класс)
Ответ отправлен: 24.01.2008, 10:52 Оценка за ответ: 5 Комментарий оценки: Спасибо
Вопрос № 119.722
День добрый. Вопрос совсем простой, но методом научного тыка я его не решил. Есть книга по 7.5, там пример процедуры проводки
Процедура ОбработкаПроведения()
Пока ПолучитьСтроку() = 1 Цикл
Операция.НоваяПроводка();
Операция.Кредит.Счет = СчетПоКоду("60.1");
Операция.Дебет.Счет = СчетПоКоду("08.4");
Операция.СодержаниеПроводки = "Поступление ОС";
Операция.Сумма = Сумма;
Операция.НомерЖурнала="OC";
КонецЦикла;
Операция.Записать();
КонецПроцедуры
Что нужно изменить в этом коде для 7.7. Ошибка "Недопустимая операция".
Зараннее спасибо.
Отправлен: 22.01.2008, 11:41
Вопрос задал: stahh (статус: 2-ой класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Гудков Сергей Евгеньевич !!! Здравствуйте, Stahh! Во-первых, пропущено ВыбратьСтроки();, во-вторых, у Вас на каждом счете есть аналитика, а в Вашем модуле она не заполняется. Смотрите приложение
Приложение:
Ответ отправил: Гудков Сергей Евгеньевич (статус: 1-ый класс)
Ответ отправлен: 22.01.2008, 11:49 Оценка за ответ: 2 Комментарий оценки: Работает и без ВыбратьСтроки()
Отвечает: Vlad Skorochod !!! Здравствуйте, Stahh! Перед началом цикла необходимо сначала выбрать строки. ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл
Ответ отправил: Vlad Skorochod (статус: Студент)
Ответ отправлен: 22.01.2008, 11:57 Оценка за ответ: 2 Комментарий оценки: Работает и без ВыбратьСтроки()
Отвечает: Сергей Максименко [Elric]
Здравствуйте, Stahh!
Отвечаю с учетом Вашего комментария в мини-форуме: Вот что выдает программа: "Операция.НоваяПроводка(); {Документ.ПоступлениеТМЦ.Модуль Документа(6)}: Недопустимая операция"
Откройте дерево Конфигурации, сделайте двойной щелчок по Вашему документу "ПоступлениеТМЦ" и проверьте, стоит ли галочка "Бухгалтерский учет" в свойствах. И какой вариант создания Операции выбран для этого документа: "Всегда", "Выборочно"
или "Только при проведении". Обычно ставят "Всегда".
И вот решил еще добавить немного в ответ на Ваш комментарий уже к моему Ответу, т.к. не все читающие рассылку зарегестрированы на сайте и следовательно могут не иметь доступа к мини-форуму.
"Отмечать тип учета" нужно не всегда, а только если при проведении делаются какие-либо движения по этому конкретному "типу учета" (компоненте). При этом в обработке п
роведения могут выполняться действия, не затрагивающие регистры, проводки или виды расчетов. Например, изменение периодических реквизитов справочника (с привязкой к документу или без), проверка заполнены ли все важные реквизиты документа (например, выбран ли Контрагент у документа Договор и т.д.). Такие действия не требуют указания "типа учета".
--------- В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал) Украина, Киев Тел.: (044) 22-88-369 Организация: МАКСЕР, "1С:Предприятие" в Киеве Адрес: г. Киев WWW:www.makser.com.ua ---- Ответ отправлен: 22.01.2008, 21:48 Оценка за ответ: 5 Комментарий оценки: О, Великий Гуру! Свершилось! Исходя из логики Вашего ответа, следует, что при не пустой процедуре ОбработкаПроведения
нужно всегда отмечать тип учета! Огромное спасибо!