Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 712
от 27.01.2008, 12:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 385, Экспертов: 49
В номере:Вопросов: 8, Ответов: 20

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 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 не нравится сам список значений. Можно ли победить данный глюк и вернуть штатное условие Док в спс? Просто чтобы больше не попадаться.

Приложение:

Отправлен: 21.01.2008, 12:18
Вопрос задал: Ушаков Михаил Андреевич (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: 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) Участок кода в приложении. Выводит ошибку Док.ЗаписатьПроводки(); .... : Номер не уникальный! Всю голову уже сломал.

Приложение:

Отправлен: 21.01.2008, 12:27
Вопрос задал: KripWorland (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: DERL.KG
!!!
Здравствуйте, KripWorland!
У себя попробовал, все работает.
Попробуйте добавить префикс номеру документа с помощью УстановитьНовыйНомер(<Префикс>)

У операции нет метода УстановитьНовыйНомер
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 21.01.2008, 14:30
Ответ отправил: 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
Уваж.народ, помогите в одном деле.
справочник-товары, в списке номенклатуры, надо показать текущие остатки.
Создал в спец. списке "ДляВыбора", "вычисляемую колонку"-остат, в модуле формы списке написал процедуру приоткрытии(), нашел остатки по каждому элементу (создал спр.Номенклатура, БИ, выполнил запрос на дату дока,...), все работает в деле, вот НЕ МОГУ ПРИВЯЗАТЬ и показать их в списке справочника. С позиционироваться на каждый элемент справочника.
заранее, спасибо!
Отправлен: 21.01.2008, 18:09
Вопрос задал: Abdugani abdrimov (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Краюшкин Игорь Валерьевич
Здравствуйте, Abdugani abdrimov!

В список "ДляВыбора" вставляете текстовую колонку. В свойствах текста на закладке "Дополнительно" в формулу прописываете ссылку на функци. Например, ПолучитьОстаток(ТекущийЭлемент())
А саму функцию уже пишете по Вашему коду, который работает. ТекущийЭлемент() - параметр, передаваемый в функцию, определяющий элемент списка справочника, для которого идет расчет остатка.
Т.о. каждая видимая строка списка справочника будет рассчитывать остаток.
Ответ отправил: Краюшкин Игорь Валерьевич (статус: Студент)
Ответ отправлен: 21.01.2008, 18:36
Оценка за ответ: 5
Комментарий оценки:
ОГРОМНОЕ СПАСИБО !


Вопрос № 119.634
Привет!
Такой вопрос: Есть справочник "Цеха" подчиненный ему справочник "бригады" , документ допустим "передача смены"
Как при выборе элемента справочника "Бригады" из документа "передача смены" сделать отбор по владельцу "Цех" если в документе имеется реквизит "Цех"
Чтоб когда спр "Бригады " открывался для выбора и были видны только записи с владельцем как в документе.

Нужен маленький но понятный примерчик...
Спасибо!
Отправлен: 21.01.2008, 22:11
Вопрос задал: Чалагаев Иван Григорьевич (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Maximush
Здравствуйте, Чалагаев Иван Григорьевич!

Ответ для платформы 7.7.

Если я все правильно понял, то достаточно
в свойствах поля ввода "Бригада" перейти на закладку "Дополнительно"и в параметре "Связан с" установить идентификатор реквизита-владельца: Цех.

В качестве наглядного примера можно посмотреть как организован выбор договора в любом документе типовой конфигурации где есть реквизиты Контрагент и Договор.

Кстати, имеет смысл рассмотреть ситуации, когда цех меняется в заполненном документе (проверять чтобы в таком случае в документе не осталась бригада из другого цеха). И вообще посмотреть все что крутится вокруг договоров и контрагентов в типовых конфигурациях.

Немножко подкорректировал лексику (для читабельности).
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 22.01.2008, 00:21
Ответ отправил: 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 реализовать одномерный массив чисел (объявление, помещение в него чисел и извлечение)? Размер массива заранее не известен.
конкретно: в этот массив должны накапливаться коды сотрудников, сколько их будет - не знаю. потом коды будут извлекаться, опять же хотелось бы узнать на этом этапе размер массива
Отправлен: 22.01.2008, 02:18
Вопрос задал: Сергеев Александр (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: 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!
Во-первых, пропущено ВыбратьСтроки();, во-вторых, у Вас на каждом счете есть аналитика, а в Вашем модуле она не заполняется. Смотрите приложение

Из-за невыбранной строки такое сообщение об ошибке еще никогда не выдавалось. Да и пустая аналитика в проводке тоже вполне допустима.
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 24.01.2008, 02:34

Приложение:

Ответ отправил: Гудков Сергей Евгеньевич (статус: 1-ый класс)
Ответ отправлен: 22.01.2008, 11:49
Оценка за ответ: 2
Комментарий оценки:
Работает и без ВыбратьСтроки()

Отвечает: Vlad Skorochod
!!!
Здравствуйте, Stahh!
Перед началом цикла необходимо сначала выбрать строки.
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл

Из-за невыбранной строки такое сообщение об ошибке еще никогда не выдавалось. К реквизитам строки можно обращаться даже когда строка не выбрана, просто получишь пустые значения реквизитов, но никак не сообщение об ошибке.
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 24.01.2008, 02:36
Ответ отправил: 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
Комментарий оценки:
О, Великий Гуру! Свершилось! Исходя из логики Вашего ответа, следует, что при не пустой процедуре ОбработкаПроведения нужно всегда отмечать тип учета! Огромное спасибо!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное