Вопрос № 132236: Здравствуйте, уважаемые эксперты. Подскажите, пожалуйста, как решить проблему, первый раз с таким сталкиваюсь.
Ситуация такова: бухгалтерия, 7.7. У нас в нее выгружаются документы из торговли и из клиент-банка. Проблема в том, что у ПКО с опреде...Вопрос № 132237: Здравствуйте добрые люди! Необходимо реализовать продажу наборов ТМЦ. К примеру: Набор- "Аптечка", Состав набора - 1 Бинт, 1 Зеленка, 2 Пластыря. Все ТМЦ, как набор, так и состав, находятся в ОДНОМ справачнике.
На закладке "Набор&q...Вопрос № 132258: Добрый день уважаемые эксперты! Вновь прошу вашей помощи.
Дано:
Справочник в котором есть реквизит "Дата начала работы" - тип реквизита "Дата".
Задача:
На основе этого реквизита и текущей сист...Вопрос № 132259: Приветствую Вас, уважаемые Эксперты!!!
Конфиг. самописная с нуля 7.7
Не могу разобраться. Элементы справочников содержат периодические реквизиты. С начала использования конфигурации некоторое время при добавлении нового элемента справочника в...Вопрос № 132302: Добрый день. Предупреждаю сразу)))) в программировании пока мало что соображаю. Хочу реализовать раздельную нумерацию для накладных. Ввела различные префиксы для фирм, после ввода новой накладной номер определяется с префиксом для фирмы по умолчанию,...
Вопрос № 132.236
Здравствуйте, уважаемые эксперты. Подскажите, пожалуйста, как решить проблему, первый раз с таким сталкиваюсь.
Ситуация такова: бухгалтерия, 7.7. У нас в нее выгружаются документы из торговли и из клиент-банка. Проблема в том, что у ПКО с определенным счетом, 76.2 (субконто Контрагенты и Договоры), когда заходишь в документ и пытаешься изменить второе субконто, которое должно быть элементом справочника Договоры, то открывается почему-то справочник Контрагенты.
Я пытался поправить дело простейшей обработкой, кусок из которой я привел в приложении, но она выдает ошибку при записи документа, что типа "документ не выбран". ЧТо я не так сделал и можно ли это поправить как-то иначе, может проще, может правильнее?
Приложение:
Отправлен: 15.04.2008, 04:13
Вопрос задал: Zerkon (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Астафьев Александр Николаевич
Здравствуйте, UnknownDS! Дело в том что справочник Договоры это подчиненный справочник справочнику Контрагенты и машина предлагает вам сначала указать элемент справочника - владельца т.е. по какому контрагенту вы хотите выбрать договор. Кликаете на нужного контрагента и откроется список его договоров , кликнете на нужный договор и он подставится в форму документа. Все! Никакие обработки там не нужны. Единственное что, проверте у Вас в ПКО в свойствах поля Субконто2 на закладке Дополнительно в графе "Связан
с:" нужно поставить "Субконто1" тогда программа будет знать что элемент справочника владельца записан в Субконто1 и будет сразу открывать справочник догоры.
Ответ отправил: Астафьев Александр Николаевич (статус: Студент)
Ответ отправлен: 15.04.2008, 08:08 Оценка за ответ: 4 Комментарий оценки: Спасибо за ответ, но не все так просто. Я забыл указать некоторую информацию, прошу извинить. На минифоруме я описал проблему подробнее.
Вопрос № 132.237
Здравствуйте добрые люди! Необходимо реализовать продажу наборов ТМЦ. К примеру: Набор- "Аптечка", Состав набора - 1 Бинт, 1 Зеленка, 2 Пластыря. Все ТМЦ, как набор, так и состав, находятся в ОДНОМ справачнике.
На закладке "Набор" в Спр_ТМЦ есть:
- кнопка добавить, изменить, удалать,записать;
- таблица значений.
В таблицу значений я добавляю состав набора, и затем нужно записать. КАК ЗАКРЕПИТЬ и СОХРАНИТЬ состав за набором , что бы любой момент, можно было не только изменить набор с помощью ТЗ, но и списать и.т.д. ????????????
ТЗ хранит даные только в оперативке, и трудность моя в том как сохранить связь между названием набора и его составляющими в постоянной памяти.
Наборы не списываются и не приходуются, списывается только состав набора.
К примеру, в расходной накладной на закладке набор я выбираю название набора-АПТЕЧКА, количество-1, и на основную закладку переносится состав набора и списуется в соответсвтующем количестве 1 Бинт, 1 Зеленка, 2 Пластыря.
Я новичок в 1с и иду сложним путем, как мне кажется; один из моих вариантов, такой: при формировании состава набора можно связать кода составляющих набора с самими набором, записывая их в невидимую дополнительную колонку Спр_ТМЦ :)
Помогите пожалуйста!
Искренне Вам благодарен!
Отвечает: Астафьев Александр Николаевич
Здравствуйте, Александр Николаевич! Если Вам нужно хранить состав набора предлагаю заменить таблицу значений на список значений (Назовем СписокНабора). Я думаю если вы создали кнопки " добавить, изменить, удалить,записать" для таблицы значений то сможете их зделать для списка значений. В справочнике Спр_ТМЦ создайте новый реквизит например СоставНабора - тип строка неограниченной длинны. Тогда в процедуру "ПриЗаписи" элемента даем команду:
СоставНабора = СписокНабора.ВСтрокуСРазделителями();
А в процедуру "ПриОткрытии" добавляем команду:
СписокНабора.ИзСтрокиСРазделителями(СоставНабора);
Ответ отправил: Астафьев Александр Николаевич (статус: Студент)
Ответ отправлен: 15.04.2008, 07:26 Оценка за ответ: 3 Комментарий оценки: Список значений не подходит, нужно именно ТЗ. В случае со Списком Значений добавленный реквизит, насколько я понимаю, удобно использовать для одного или нескольких наборов, а если их 10,20... и.т.д? Влюбом случае, я узнаю для себя что то новое :) Искреннее Вам спасибо!
Отвечает: Владимир Лазурко
Здравствуйте, Александр Николаевич!
Вы не указали, какая у Ваас платформа 7 или 8, но для Вашего случая решение подходит для обоих платформ.
Вы сделали всё правильно - набор хранит в себе состав элементов (их количество) и при списании или приходовании наборов фактически списываются и приходуются элементы набора.
У Вас не получается сохранить в базе данных набор? Это решение уже есть.
В типовой конфигурации "Торговля и Склад" для наборов используется подчинённый номенклатуре справочник "Комплектация", а в самом элементе справочника Номенклатура перечисление ВидТовара со значениями Товар, Услуга, Набор, Тара. У элементов справочника Комплектация два реквизита - Количество (тип число) и Товар (тип Справочник.Номенклатура).
Затем в модулях проведения, процедурах печати документа проверяется: текущий элемент справочника Номенклатура - набор?
Если это набор, тогда читается подчинённый справочник Комплектация и для документов находят элементы номенклатуры, ссылки на которые записаны в справочнике Комплектация и приходуется или списывается то количество номенклатурных единиц, которое задано в справочнике Комплектация для этой составляющей набора, умноженное на количество наборов, указанных в накладной.
При печати такой же алгоритм: если в строке набор, добавляется дополнительная секция (строка накладной), которая циклически повторяется для каждого элемента из состава набора. Пример распечатки в Приложении (условно, без цен).
С уважением, Владимир.
Приложение:
Ответ отправил: Владимир Лазурко (статус: Студент)
Ответ отправлен: 15.04.2008, 07:59 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Отвечает: Vlad Skorochod
Здравствуйте, Александр Николаевич!
Создайте подчиненый справочник "Наборы" для справочника "Номенклатура" и в нем два поля номенклатура (Ссылка на справочник "Номенклатура") и количество(число). И в самом справочнике номенклатура создайте поле с однозначным признаком, что это Набор (Да-Нет). И в последующем при выборе номенклатуры, если это "набор" то выбирайте значения и количество из подчиненного справочника.
Ответ отправил: Vlad Skorochod (статус: 10-ый класс)
Ответ отправлен: 15.04.2008, 09:08 Оценка за ответ: 5
Отвечает: Брагар Сергей Владимирович
Здравствуйте, Александр Николаевич!
Решение могу предложить следующим путем:
1. ввести реквизит в справочник ТМЦ СоставНабора (стрка неограниченной длины)
2. при изменении состава набора результат записывать в строку воспользовавшись фукциями ЗначениеВСтрокуВнутр()
3. при списании, при определении типа товара "Набор", вычислять состав набора ЗначениеИзСтрокиВнутр(СоставНабора)
Или делать через функции (ВСтрокуСРазделителями(), ИзСтрокиСРазделителями()) если работаете со списком значений при редактировании состава.
Добрый день уважаемые эксперты! Вновь прошу вашей помощи.
Дано:
Справочник в котором есть реквизит "Дата начала работы" - тип реквизита "Дата".
Задача:
На основе этого реквизита и текущей системной даты выводить данные о стаже сотрудника на текущую дату с точностью до дня (Нужно для заполнения "Личной карточки сотрудника" для кадровиков, к примеру стаж: 1 дней 5 месцев 6 Лет ). Для вычесления сделал следующее: ДатаГод(ТекущаяДата()) - ДатаГод(ДатаНачалаРаботы), но у меня получаются данные с точностью до года, а надо с точностью до дня. Может кто-то знает как решить эту задачу?
Зарание спасибо. С уважением, Сергей.
Приложение:
Отправлен: 15.04.2008, 08:55
Вопрос задал: Serega_1c (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Лет = 0; Месяцев = 0; Дней = 0;
Если Дата1>Дата2 Тогда
ВременнаяДата = Дата1;
Если ДатаЧисло(ВременнаяДата)<ДатаЧисло(Дата2) Тогда
Дней = ВременнаяДата-ДобавитьМесяц(ВременнаяДата,-1);
ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1);
КонецЕсли;
Если ДатаМесяц(ВременнаяДата)<ДатаМесяц(Дата2) Тогда
ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12);
Месяцев = 12;
КонецЕсли;
Лет = Макс( ДатаГод (ВременнаяДата)-ДатаГод (Дата2),0);
Месяцев = Макс(Месяцев +ДатаМесяц(ВременнаяДата)-ДатаМесяц(Дата2),0);
Дней = Макс(Дней +ДатаЧисло(ВременнаяДата)-ДатаЧисло(Дата2),0);
// скорректируем отображаемое значение, если "вмешалось" разное количество дней в месяцах
Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней) Тогда
Дней = Дней + (КонМесяца(Дата2)-НачМесяца(Дата2)) - (КонМесяца(ДобавитьМесяц(Дата1,-1))-НачМесяца(ДобавитьМесяц(Дата1,-1)));
КонецЕсли;
КонецЕсли;
КонецПроцедуры // глРазобратьРазностьДат
думаю назначение переменных понятно, да и код тоже
Ответ отправил: Airyashov (статус: 4-ый класс)
Ответ отправлен: 15.04.2008, 09:07 Оценка за ответ: 5 Комментарий оценки: Спасибо, но я думаю есть вариант по проше. Если нет буду ковырять это. Еще раз спасибо, за молненосный ответ! Удачи и всех благ!
Отвечает: Vlad Skorochod
Здравствуйте, Serega_1c!
(ТекущаяДата() - ДатаНачалаРаботы +1) - выдаст разницу в днях между датами. А если необходимо с разбивкой по дням, месяцам и годам, то посмотрите в конфигурации "Зарплата и кадры" там есть такая функция.
Ответ отправил: Vlad Skorochod (статус: 10-ый класс)
Ответ отправлен: 15.04.2008, 09:16 Оценка за ответ: 5 Комментарий оценки: Большое спасибо!
Вопрос № 132.259
Приветствую Вас, уважаемые Эксперты!!!
Конфиг. самописная с нуля 7.7
Не могу разобраться. Элементы справочников содержат периодические реквизиты. С начала использования конфигурации некоторое время при добавлении нового элемента справочника все его периодические реквизиты устанавливались на дату 01.01.1980. Но с некоторого времени, периодические реквизиты созданных элементов справочников стали записываться на рабочую дату, если элемент создается непосредственно в справочнике, либо на ДатаДок, при создании нового элемента в ходе создания нового документа.
Не пойму в чем дело...
Указанная проблема мешает когда для создания документа приходится использовать элемент справочника, дата периодических реквизитов которого позже, чем ДатаДок.
Я в своей конфигурации веду учет договоров организации, т.к. объем уже заключенных договоров очень большой паралельно веду регистрацию текущих документов, а также регистрирую все предыдущие договоры, бывают возникают ситуации, что с контрагентами которые уже записаны у меня в справочнике, допустим в 2007 году были заключены иные договоры в 2001-2006 г.г. приходится ручками записывать периодические реквизиты на более раннюю дату...
Используйте метод Установить(<Дата>,<Значение>) либо ИспользоватьДату(<Дата>,<УстСразу>) для периодических реквизитов. Подробнее в синтаксис-помощнике.
Ответ отправил: Munster (статус: 9-ый класс)
Ответ отправлен: 15.04.2008, 09:31 Оценка за ответ: 4 Комментарий оценки: Да установить нужную дату-то не сложно, вопрос в том, почему ранше по умолчанию ставилось 01.01.1980, а теперь нет...
Отвечает: Ovr1970
Здравствуйте, Сазонов Алексей!
При записи элемента справочника есть предопределенная процедура
ПриЗаписи(<СписокПериодРекв>)
По значению входного параметра Вы можете определить какие реквизиты были изменены и отменить или разрешить их запись. Например Вы можете отменить их запись, но , определив какие реквизиты изменены, записать измененные значения не на Рабочую Дату , а на начало месяца (или другую удобную дату).
Если же Вам не нужны периодческие реквизиты, то просто сделайте их не периодическими. Кстати, именно при смене типа "не периодического" реквизита на "периодический" его текущее значение записывается на дату 01.01.1980
Ответ отправил: Ovr1970 (статус: Практикант)
Ответ отправлен: 15.04.2008, 10:44 Оценка за ответ: 4 Комментарий оценки: Спасибо за ответ!
Отвечает: Астафьев Александр Николаевич
Здравствуйте, Сазонов Алексей! Когда периодический реквизит записывается первый раз то для него устанавливается дата 01.01.1980, в последующем при записи нового занчения периодического реквизита он будет записываться на текущую рабочую дату. Это по умолчанию. Если вам нужно устанавливать значения периодических реквизитов на другую какую то дату, пропишите это в процедуре ПриЗаписи(). Например через Договор.Установить(Дата("01.02.2008"),<Значение>), СоздатьОбъект("Периодический") и т.д.
Ответ отправил: Астафьев Александр Николаевич (статус: Студент)
Ответ отправлен: 16.04.2008, 08:56 Оценка за ответ: 4 Комментарий оценки: Так проблема в том, что не устанавливается дата период. реквизита на 01.01.1980при его первой записи...Я об этом как раз и спрашиваю, почему не ставится по умолчаниюто, что должно ставиться по умолчанию, т.е. дата при первой записи =01.01.1980.
Вопрос № 132.302
Добрый день. Предупреждаю сразу)))) в программировании пока мало что соображаю. Хочу реализовать раздельную нумерацию для накладных. Ввела различные префиксы для фирм, после ввода новой накладной номер определяется с префиксом для фирмы по умолчанию, но при изменении фирмы, номер вводит некорректно, префикс другой фирмы не передается. Как можно это исправить?
Отправлен: 15.04.2008, 13:10
Вопрос задала: Solna (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Airyashov
Здравствуйте, Solna!
УстановитьНовыйНомер(<Префикс>) при изменение фирмы
Ответ отправил: Airyashov (статус: 4-ый класс)
Ответ отправлен: 15.04.2008, 13:23 Оценка за ответ: 5
Отвечает: Кулевский Сергей Владимирович
Здравствуйте, Solna!
Необходимо обрабатывать "ПриИзменении" поля Организация. В новом обработчике при смене организации заново перенумеровывать документ.Т.е.
Отвечает: Larsh
Здравствуйте, Solna!
Не знаю какая платформа
Сделайте на форме документа кнопочку "Выбранная Фирма" ,К ней процедуру ПриИзмененииФирмы()
В справоснике Фирмы - должен быть реквизит с префиксом для фирмы.
По кнопочке вы выбираете нужную фирму из справочника, а значение реквизитас префиксом используете для формирования нового номера
//При изменении Фирмы надо изменить номер документа
УстановитьНовыйНомер(ПрефиксДок);
Ответ отправила: Larsh (статус: 2-ой класс)
Ответ отправлен: 16.04.2008, 05:23
Отвечает: Астафьев Александр Николаевич
Здравствуйте, Solna! Процедура ВводНового() срабатывает только при создании нового документа. Команду УстановитьНовыйНомер(Фирма.Префикс+"-"); нужно вставить в процедуру которую прописать на закладке "Дополнительно" в кнопке или поле смотря как у вас сделано изменение Фирмы в документе.