Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )



История благодарностей участнику denis84 ::: Спасибо сказали: 137 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
23.08.23, 7:29 Чи потрібно видаляти COMОбъект після вікористання ?
alex-l1904 @ Вчера, 15:40 * ,
Добрый день, я робив так:

Перем Соединение;

Процедура ПолучитьПодключениеКФайловойБД()
    Соединение = Новый COMОбъект("V82.Application");
    
    Попытка
        Подключение = Соединение.Connect("File="""+СокрЛП(ПутьКбазе)+""";Usr="""+СокрЛП(Логин)+""";Pwd = """ + СокрЛП(Пароль) + """;");
        Надпись1 = "База успешно подключена!";
    Исключение    
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки();
        Сообщение.Сообщить();
    КонецПопытки;    
КонецПроцедуры

Процедура РазорватьСоединение()
    Соединение.ЗавершитьРаботуСистемы(Ложь);
    Надпись1 = "База отключена!";
КонецПроцедуры


тобто замісць
V8_ = Неопределено;
напишіть
V8.ЗавершитьРаботуСистемы(ложь);
і корректно завершиться процес 1С, без лишніх запитань
kihor,
18.07.23, 9:18 Авансовий звіт 2023 для звичайних форм
awp @ Сегодня, 9:51 * ,
Ще не зустрічав. Там не значні зміни (як завжди те прибрали а те перемістили)
awp,
21.06.23, 8:27 Отбор в журнале документов по автору создания
kostya77 @ Сегодня, 9:23 * ,
я делал для каждого вида документа свой журнал с отбором. Это было моё решение, а так вам самим решать как реализовать.
kostya77,
01.05.23, 12:08 Как отправить сообщение пользователю?
kostya77 @ Сегодня, 9:57 * ,
    КомандаСистемы("NET SEND "+СокрЛП(ИмяКомпКому)+ТекстСообщения);
Alex729,
25.04.23, 15:35 При оновленні конфігурації через підтримку пропонує починати оновлення з старшого релізу
зробили перше оновлення з релізу 1.2.54. зберегли конфігурації і так далі... можливо треба ще запускати "підпрємство" кожен раз. я давно не оновлював колнфігураціїї.
chernomoretc_cn,
07.04.23, 19:56 Отчет про правам пользователей
kostya77 @ Сегодня, 14:52 * ,
Давайте почту скину . Она есть у меня
kostya77,
31.03.23, 12:34 Прошу подсказать по стоимости часа
kserg2012 @ Сегодня, 12:35 * ,
видел такие ставки, как 500 грн час. Сам я подхожу индивидуально к задаче. Иногда ставлю сумму в целом выполненую задачу, а иногда считаю по часам.
kserg2012, RedCat77,
31.03.23, 9:15 Синхронизация ТекущаяДата() и ТекущаяДатаСеанса()
Talkman @ Сегодня, 10:01 * ,

Цитата
ИТС запрещает использовать ТекущаяДата(), но исчерпывающей информации на вопрос "Почему?" нет ни там, ни на ИС, поэтому написал данную заметку. Тем не менее, совсем не знакомым с темой, стоит прочитать статью на ИТС (по этой ссылке)и бегло статью на ИС "О времени и 1С" (к сожалению, ровно через неделю после моей публикации Юрий Пермитин удалил все свои статьи с инфостарта и ссылка уже не действительна).

Цитаты с ИТС:

2.1. Во всех серверных процедурах и функциях вместо функции ТекущаяДата, которая возвращает дату и время серверного компьютера, следует использовать функцию ТекущаяДатаСеанса, которая приводит время сервера к часовому поясу пользовательского сеанса.

3.1. В клиентском коде использование функции ТекущаяДата также недопустимо. Это требование обусловлено тем, что текущее время, вычисленное в клиентском и серверном коде, не должно различаться.

2.2. В тех случаях, когда требуется «универсальная» отметка времени, не зависящая от часового пояса текущего сеанса пользователя, в контексте которого выполняется серверный вызов, следует использовать функцию УниверсальноеВремя.

А именно остались вопросы:

1. Раз уж по неведомой пока причине, запретили использовать ТекущаяДата(), то почему бы вместо неё не дать возможность всегда использовать ТекущаяДатаСеанса()? Почему в платформе не сделали функцию ТекущаяДатаСеанса() доступной на клиенте? Тем более, что инфа о времени сеанса клиента изначально физически лежит на клиенте.

Потому что ТекущаяДатаСеанса() - согласно СП это серверная дата и время + часовой пояс клиента. А значит мы страхуемся от того, что на клиенте время вообще от балды идёт, например отстаёт на секунду.

2. Хорошо, раз на клиенте недоступна ТекущаяДатаСеанса(), то почему ИТС не разрешает на клиенте вызывать ТекущаяДата()? Ведь ТекущаяДатаСеанса() выполненная на сервере по идее будет равняться ТекущаяДата() выполненная на клиенте.
Вместо этого ИТС рекомендует вызывать метод БСП ДатаСеанса(), который как раз и вернёт значение равное ТекущаяДатаСеанса() только при этом не будет делать серверный вызов, за счёт того, что он был сделан однократно в начале сеанса и была вычислена ПоправкаКВремениСеанса = ТекущаяДатаСеанса(вычисленная на сервере) - ТекущаяДата(вычисленная на клиенте).

Ответ на данный вопрос вытекает из предыдущего: серверное и клиентское время время может отличаться не только на часовой пояс, и единственный выход пользоваться одинаковым временем, это брать его с сервера и добавлять клиентские часовые пояса - т.е. ровно то, что и делается в ТекущаяДатаСеанса() и ДатаСеанса()

Второй аргумент подсказал коллега (в достоверности не могу ручаться): ТекущаяДатаСеанса() на сервере и ТекущаяДата() на клиенте могут отличаться во фреше, т.к. это эталонное время для области в которой крутится сеанс и время Кластера соответсвенно.

3. Почему в качестве универсального времени ИТС указывает безальтернативно использовать УниверсальноеВремя()? Почему вместо этого нельзя использовать ТекущаяДата() вычисленное на сервере?


ТекущаяДата() на сервере тоже может меняться - например если сервер переехал. Или серверов может быть несколько. Поэтому УниверсальноеВремя() универсально в отличии от ТекущаяДата().


Проверено на платформе 8.3.17.1989.



взято с infostarta https://infostart.ru/1c/articles/1714759/

посмотрите, может это то что вам надо
Talkman,
21.03.23, 9:30 Подскажите, как можно организовать хранение фалов в базе.
kostya77 @ Сегодня, 9:16 * ,
Такое реализовано у нас для договоров через обработку прикрепленные файлы. Создан каталог для хранения файлов. Выбераем файл
//1 строка - тип
//2 строка - длина
//3 строка - точность
//4 строка - ИД вида объекта
//5 строка - флаг неотр. (?)
//6 строка - флаг разделения триад (?)
//7 строка - ИД объекта
Функция ПолучитьИДобъекта(Объект)
    Перем Стр;
    Стр=ЗначениеВСтрокуВнутр(Объект);
    СЗ=СоздатьОбъект("СписокЗначений");
    СЗ.ИзСтрокиСРазделителями(Сред(Стр,2,СтрДлина(Стр)-2));
    Для Сч=1 По 7 Цикл
        Если (Сч=4) или (Сч=7) Тогда
            ДесИД=СЗ.ПолучитьЗначение(Сч);
            СЗ.УстановитьЗначение(Сч,_IdToStr(ДесИД));
        КонецЕсли;
    КонецЦикла;
    Возврат СЗ;
КонецФункции


//*******************************************
Процедура СоздатьКаталогОбъекта()
    СЗ=ПолучитьИДобъекта(Объект);
    //Проверим, существует ли каталог для прикрепляемых файлов
    КаталогФайлов=КаталогИБ()+"Files\";
    // "1MZ" - док.Договор
    Если СокрЛП(СЗ.ПолучитьЗначение(4)) = "1MZ" Тогда
        КаталогФайлов=КаталогИБ()+"Files\";
    КонецЕсли;
    Если ФС.СуществуетФайл(КаталогФайлов)=0 Тогда //Если каталога нет,
        ФС.СоздатьКаталог(КаталогФайлов);         //то создадим его.
    КонецЕсли;
    //Проверим, существует ли каталог для записи файлов объектов данного типа
    КаталогТипаОбъекта=КаталогФайлов+СокрЛП(СЗ.ПолучитьЗначение(1))+"\";
    Если ФС.СуществуетФайл(КаталогТипаОбъекта)=0 Тогда //Если каталога нет,
        ФС.СоздатьКаталог(КаталогТипаОбъекта);         //то создадим его.
    КонецЕсли;
    //Проверим, существует ли каталог для записи файлов объектов данного вида
    КаталогВидаОбъекта=КаталогТипаОбъекта+СокрЛП(СЗ.ПолучитьЗначение(4))+"\";
    Если ФС.СуществуетФайл(КаталогВидаОбъекта)=0 Тогда //Если каталога нет,
        ФС.СоздатьКаталог(КаталогВидаОбъекта);         //то создадим его.
    КонецЕсли;
    //Проверим, существует ли каталог для записи файлов этого объекта
    КаталогОбъекта=КаталогВидаОбъекта+СокрЛП(СЗ.ПолучитьЗначение(7))+"\";
    Если ФС.СуществуетФайл(КаталогОбъекта)=0 Тогда //Если каталога нет,
        ФС.СоздатьКаталог(КаталогОбъекта);         //то создадим его.
    КонецЕсли;
КонецПроцедуры

//*********************************************
Процедура ВыбратьФайл()
    ТекКат="";
    ИмяФайла="";
    ИмяФайла1="";
    Если ФС.ВыбратьФайл(0,ИмяФайла,ТекКат,"Выберите файл:",,,120)=1 Тогда
        Если ФС.СуществуетФайл(КаталогОбъекта)=0 Тогда
            СоздатьКаталогОбъекта();
        КонецЕсли;
        //Приведём длину имени файла в соответствие...
        МаксДлИмениФайла=120;
        ПозРасш=НайтиПослВх(ИмяФайла,".");
        РасшФайла=Прав(ИмяФайла,СтрДлина(ИмяФайла)-ПозРасш);
        НазвФайла=Лев(ИмяФайла,Мин(ПозРасш-1,МаксДлИмениФайла-СтрДлина(РасшФайла)-1));
        ИмяФайла1=НазвФайла+"."+РасшФайла;
        //Проверим, есть ли такой файл в папке...
        Если ФС.СуществуетФайл(КаталогОбъекта+ИмяФайла)=1 Тогда //Проверим наличие файла с таким же именем в каталоге приёмнике
            Если Не(Вопрос("Файл с именем "+ИмяФайла+"
            |в каталоге "+КаталогОбъекта+" уже существует!
            |Перезаписать файл "+ИмяФайла+"?","Да+Нет+Отмена",30)="Да") Тогда
                Возврат;
            КонецЕсли;
        КонецЕсли;
        Если ФС.СуществуетФайл(КаталогОбъекта+"files.vtf")=0 Тогда
            СоздатьКаталогОбъекта();
        КонецЕсли;
        //Копируем файл в папку...
        ФС.КопироватьФайл(ТекКат+ИмяФайла,КаталогОбъекта+ИмяФайла1,0);
    Иначе
        Возврат;
    КонецЕсли;
КонецПроцедуры


Есль такой вариант (но я не проверял):
Добавь в док реквизит текстовый и кнопку на форму для выбора файла, при выборе файла в реквизит попадает путь + имя файла , а на кнопку открытия вешай :
 ЗапуститьПриложение(Путь+ИмяФайла);
kostya77,
07.03.23, 11:23 Відбір в журналі документів
kostya77 @ Сегодня, 10:53 * ,
//пример из конфигурации "торговля и склад"  общий (полный) журнал.

//******************************************************************************
Процедура ПриВыбореКонтрагента()  
    
    Если КонтрагентДляОтбора.Выбран()>0 Тогда
        УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
        КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
    Иначе
        УстановитьОтбор("");
    КонецЕсли;
    
КонецПроцедуры

//******************************************************************************
Процедура ПриВыбореВидаДокумента()
    
    Если ПустоеЗначение(ВидДокументаДляОтбора) = 1 Тогда
        ВидДокументаДляОтбора=1;
    КонецЕсли;
    УстановитьОтбор(СписокВидовДокументов.ПолучитьЗначение(ВидДокументаДляОтбора), );
    
КонецПроцедуры

//******************************************************************************
Процедура ПриВыбореАвтора()  
    
    Если АвторДляОтбора.Выбран()>0 Тогда
        УстановитьОтбор("Автор", АвторДляОтбора);
        АвторДляОтбора = АвторДляОтбора.ТекущийЭлемент();
    Иначе
        УстановитьОтбор("");
    КонецЕсли;
    
КонецПроцедуры

//******************************************************************************
Процедура ПриВыбореТипа()    
            
    Если ПустоеЗначение(ТипДляОтбора)>0 Тогда
        ТипДляОтбора=1;
    КонецЕсли;    
            
    УстановитьОтбор("ТипУчета", ТипДляОтбора-1);
    
КонецПроцедуры

//******************************************************************************
Процедура ПриВыбореФирмы()  
    
    Если ФирмаДляОтбора.Выбран()>0 Тогда
        УстановитьОтбор("Фирма", ФирмаДляОтбора);
        ФирмаДляОтбора = ФирмаДляОтбора.ТекущийЭлемент();
    Иначе
        УстановитьОтбор("");
    КонецЕсли;
    
КонецПроцедуры

//******************************************************************************
//
Процедура ПриУстановкеБыстрогоОтбора()
    Перем ТекущДок;                          
    
    ТекущДок = ТекущийДокумент;
    
    Если ВидОтбора.ТекущаяСтрока() = 6 Тогда    // нет быстрого отбора
            
        ЗначениеВВидеСтроки = "";
        
        Форма.кнЗначение.Доступность(0);
        УстановитьОтбор("");
        ВидыОтбора("*");

    Иначе        // есть быстрый отбор
        
        Форма.кнЗначение.Доступность(1);
        
        Если ВидОтбора.ТекущаяСтрока() = 1 Тогда
            ПриВыбореКонтрагента();
            ЗначениеВВидеСтроки=Строка(КонтрагентДляОтбора);
            
        ИначеЕсли ВидОтбора.ТекущаяСтрока() = 2 Тогда
            ПриВыбореВидаДокумента();                  
            СписокВидовДокументов.ПолучитьЗначение(ВидДокументаДляОтбора,ЗначениеВВидеСтроки);
            
        ИначеЕсли ВидОтбора.ТекущаяСтрока() = 3 Тогда
            ПриВыбореАвтора();                          
            ЗначениеВВидеСтроки=Строка(АвторДляОтбора);
            
        ИначеЕсли ВидОтбора.ТекущаяСтрока() = 4 Тогда
            ПриВыбореТипа();
            ТипыУчета.ПолучитьЗначение(ТипДляОтбора,ЗначениеВВидеСтроки);
        
        ИначеЕсли ВидОтбора.ТекущаяСтрока() = 5 Тогда
            ПриВыбореФирмы();
            ЗначениеВВидеСтроки=Строка(ФирмаДляОтбора);
            
        КонецЕсли;
        
        ВидыОтбора("");
        
    КонецЕсли;
    
    Попытка
        АктивизироватьОбъект(ТекущДок);
    Исключение    
    КонецПопытки;    
        
КонецПроцедуры // ПриУстановкеБыстрогоОтбора


//******************************************************************************
//
Процедура ВыборЗначения()  
    Перем ЗначениеИзменилось,СтароеЗначение,ВыбЗначение;                    
    
    Если ВидОтбора.ТекущаяСтрока() = 6 Тогда    // нет быстрого отбора
        Возврат;
    КонецЕсли;    
    
    ЗначениеИзменилось=0;    
    
    Если ВидОтбора.ТекущаяСтрока() = 1 Тогда
        СтароеЗначение=КонтрагентДляОтбора;
        ВыбЗначение = СоздатьОбъект("Справочник.Контрагенты");
        Если ВыбЗначение.Выбрать("Выбор контрагента","Форма списка")=1 Тогда
            КонтрагентДляОтбора = ВыбЗначение;
            Если ВыбЗначение<>СтароеЗначение Тогда
                ЗначениеИзменилось=1;    
            КонецЕсли;    
        КонецЕсли;    
        
    ИначеЕсли ВидОтбора.ТекущаяСтрока() = 2 Тогда
        СтароеЗначение=ВидДокументаДляОтбора;
        Если ПустоеЗначение(ВидДокументаДляОтбора)>0 Тогда
            ВыбЗначение = "";
        Иначе    
            ВыбЗначение = СписокВидовДокументов.ПолучитьЗначение(ВидДокументаДляОтбора);
        КонецЕсли;    
        СписокВидовДокументов.ВыбратьЗначение(ВыбЗначение,"Выбор вида документов",,,0);
        ВидДокументаДляОтбора = СписокВидовДокументов.НайтиЗначение(ВыбЗначение);
        Если ВидДокументаДляОтбора<>СтароеЗначение Тогда
            ЗначениеИзменилось=1;    
        КонецЕсли;                  
        
    ИначеЕсли ВидОтбора.ТекущаяСтрока() = 3 Тогда
        СтароеЗначение=АвторДляОтбора;
        ВыбЗначение = СоздатьОбъект("Справочник.Пользователи");
        Если ВыбЗначение.Выбрать("Выбор автора","Форма списка")=1 Тогда
            АвторДляОтбора = ВыбЗначение;
            Если ВыбЗначение<>СтароеЗначение Тогда
                ЗначениеИзменилось=1;    
            КонецЕсли;    
        КонецЕсли;    
        
    ИначеЕсли ВидОтбора.ТекущаяСтрока() = 4 Тогда
        СтароеЗначение=ТипДляОтбора;                        
        Если ПустоеЗначение(ТипДляОтбора)>0 Тогда
            ВыбЗначение = "";
        Иначе    
            ВыбЗначение = ТипыУчета.ПолучитьЗначение(ТипДляОтбора);
        КонецЕсли;    
        ТипыУчета.ВыбратьЗначение(ВыбЗначение,"Выбор типа учета",,,0);
        ТипДляОтбора = ТипыУчета.НайтиЗначение(ВыбЗначение);
        Если ТипДляОтбора<>СтароеЗначение Тогда
            ЗначениеИзменилось=1;    
        КонецЕсли;    
    
    ИначеЕсли ВидОтбора.ТекущаяСтрока() = 5 Тогда
        СтароеЗначение=ФирмаДляОтбора;
        ВыбЗначение = СоздатьОбъект("Справочник.Фирмы");
        Если ВыбЗначение.Выбрать("Выбор фирмы","Форма списка")=1 Тогда
            ФирмаДляОтбора = ВыбЗначение;
            Если ВыбЗначение<>СтароеЗначение Тогда
                ЗначениеИзменилось=1;    
            КонецЕсли;    
        КонецЕсли;    
        
    КонецЕсли;
            
    Если ЗначениеИзменилось=1 Тогда
        ПриУстановкеБыстрогоОтбора();
    КонецЕсли;    

КонецПроцедуры


kostya77 @ Сегодня, 11:21 * ,
в общем журнале
pony95,
17.01.23, 14:39 Прикрепленные файлы для нового документа
CapitalistOleg @ Сегодня, 11:38 * ,

Ниже описан порядок действий для добавления "скрепки" (присоединение файлов) к новому документу "НашНовыйДокумент" (как пример).

1. Копируем справочник с наименованием содержащим на конце словосочетание "ПрисоединенныеФайлы". Например "АвансовыйОтчетПрисоединенныеФайлы".

2. Меняем наименование так, чтобы префикс точно соответствовал наименованию документа, а окончание содержало "ПрисоединенныеФайлы". В нашем случае: "НашНовыйДокументПрисоединенныеФайлы".

3. Меняем ТИП у реквизита "ВладелецФайла" справочника "НашНовыйДокументПрисоединенныеФайлы" на "НашНовыйДокумент".

4. Включаем в состав определяемых типов "ПрисоединенныйФайл" и "ПрисоединенныйФайлОбъект" наш новый справочник "НашНовыйДокументПрисоединенныеФайлы".

5. Расширим состав определяемого типа "ВладелецПрисоединенныхФайлов" нашим документом (ДокументСсылка) "НашНовыйДокумент".

6. Расширим состав типов свойства "Источник" у подписки "ПереопределитьПолучаемуюФормуПрисоединенногоФайла", включив в него справочник "НашНовыйДокументПрисоединенныеФайлы".

7. Расширим состав типов свойства "Источник" подписки УстановитьПометкуУдаленияПрисоединенныхФайловДокументов, включив в него наш новый документ (ДокументОбъект) "НашНовыйДокументПрисоединенныеФайлы".

8. Расширим состав общей команды "ПрисоединенныеФайлы" и "ПрисоединенныеФайлыБП", включив в него наш новый документ (ДокументСсылка).

на ютубе есть ролик https://www.youtube.com/watch?v=oxD8AyC-anI
AnryMc, CapitalistOleg, Vofka,
09.12.22, 15:26 О3 на інший субрахунок
Xmdrug @ Сегодня, 15:22 * ,
Ну ручной операцией можно. Но это только по счетам, а вот по регистрам надо другим документом типа корректировка регистров. Другого ничего не нашел в утп. Надо читать литературу.
Xmdrug,
07.12.22, 10:37 Переоценка ОС Xmdrug,
23.11.22, 8:10 Как добавить новую ставку НДС?
Ledi29 @ Вчера, 22:46 * ,
Перечисление "СтавкиНДС". В конфигураторе добавить новое значение перечисления. Но этого мало потом, необходимо еще в общих модулях (или модулях документов) описать расчет ставки НДС.
AnryMc, Ledi29,
19.11.22, 17:01 Відновленння обміну УРІБ
Pashaboston @ Сегодня, 10:33 * ,
Обміняти конфігурації, а не дані
Pashaboston,
11.11.22, 15:53 Ошибка печатати товарного чека
Максон @ Сегодня, 15:26 * ,
для спасибо есть специальная кнопка
Максон,
11.11.22, 15:15 Ошибка печатати товарного чека
Максон @ Сегодня, 14:38 * ,
В конфигураторе. Находите свой документ. Открываете его форму и там есть макеты печатных форм. И там уже их правите, как хотите. Но если не сильно ориентируетеся в 1с, лучше обращаться к программистам 1с
Максон,
26.10.22, 8:32 Обработка для экспорта накладных в формат ММО
barabambler @ Сегодня, 9:07 * ,
Есть у меня такая обработка, работоспособность нет на чем проверить. Вот кусок кода записи самого файла:

    
    ИмяФайла = "C:\MMO\"+СсылкаНаОбъект.Номер+".mmo";
    Раз = Симв(9); //разделитель  
                
    Текст = СоздатьОбъект("Текст");
    Текст.ДобавитьСтроку("РАСХОДНАЯ_НАКЛАДНАЯ"+Раз+СокрЛП(Фирма.ЕГРПОУ)+Раз+СокрЛП(Контрагент.ЕГРПОУ)+Раз+"версия_3");
    Текст.ДобавитьСтроку(НомерНакл+Раз+СокрЛП(ДатаДок)+Раз+НомерНакл+Раз+СокрЛП(Фирма.ПолнНаименование)+Раз +СокрЛП(Фирма.СчетПоУмолчанию.БанкНазвание)
+Раз+СокрЛП(Фирма.СчетПоУмолчанию.БанкСчет)+Раз+СокрЛП(Фирма.СчетПоУмолчанию.БанкМФО)+Раз+СокрЛП(Фирма.Телефоны)+Раз+СокрЛП(Фирма.ПочтовыйАдрес)+Раз+""+Раз+""+Раз+Итог("СуммаБезНДС")+Раз+Итог("СуммаСНДС")+Раз+""+Раз+"1"+Раз+"1"+Раз+"2");
    Текст.ДобавитьСтроку("");
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл    
            Гр = Товар.НоменклатурнаяГруппа;
        Текст.ДобавитьСтроку(СокрЛП(Товар.Код)+Раз+СокрЛП(Товар.ПолнНаименование)+Раз+СокрЛП(Гр.Код)+Раз+СокрЛП(Гр.Наименование)+
            Раз+""+Раз+""+Раз+""+Раз+""+Раз+"20"+Раз+""+Раз+"*"+Раз+""+Раз+""+Раз+""+Раз+
            СокрЛП(Единица)+Раз+СокрЛП(Количество)+Раз+""+Раз+""+Раз+""+Раз+СокрЛП(ЦенаСНДС)+Раз+СокрЛП(СуммаСНДС));
    КонецЦикла;      
    
    Текст.Записать(ИмяФайла);  
    Сообщить("Накладная записана!!!");
barabambler,
25.10.22, 10:08 Откатить назад бухгалтерские итоги
MK-61 @ Вчера, 15:59 * ,
Добрый день! Попробовал у себя на конфигурации 1с7.7 "ПУБ" в монополном режиме изменить расчет БИ. Установил расчет бухгалтерских итогов на 4 квартал 2022. Прошло без вопросов. До этого расчет БИ стоял 4 квартал 2030 года.

MK-61,
19.10.22, 12:41 Как оформить html-текст для корректного отображения в браузере
kserg2012 @ Сегодня, 11:58 * ,

Вот здесь можно прочитать:

ссылка



1С 8.x : Формирование HTML-документа, содержащего ссылки на объекты базы данных
В данной статье рассматривается способ программного формирования HTML документа, содержащего ссылки на объекты базы данных 1С, такие как справочники, документы и т.д. Показан пример построения обработчика события OnClick ПоляHTMLДокумента, для обработки клика на html-ссылке.

Предисловие
Однажды, дописывая обработку, создающую и модифицирующую, не суть важно какие документы, я подумал, что неплохо было бы вывести для пользователя некое резюме:
“Создан документ такой-то”
“Изменен документ такой-то” и т.д.
От обычного, в таких случаях, вывода информации в окно сообщений я сразу отказался, так как не удобно это, сначала читать в окне сообщений “Создан документ … ” а потом запоминать его номер, открывать соответствующий журнал (или форму списка) и искать там этот документ. А если документов много и пользователь хочет посмотреть все документы?(или выборочно) Насколько это неудобно я убедился при отладке обработки …
То, что в форме есть элемент управления именуемый ПолеHTMLДокумента я конечно знал, но вот представилась возможность познакомиться с ним поближе. Было решено реестр обработанных документов выводить в виде html документа содержащего ссылки на эти самые документы, а по клику на ссылке открывать форму соответствующего документа. Здесь мне многие могут возразить: “А почему бы для этих целей не использовать обычный макет, выводимый в табличный документ, а для открытия документов использовать расшифровку? И чем Ваш способ лучше?” Отвечаю: Конечно можно использовать, и мой способ ничем не лучше. Он просто другой. Ведь у хорошего программиста для решения одной задачи должно быть в арсенале несколько инструментов.
Итак, перейдем от слов к делу, в рамках данной статьи рассмотрим следующую задачу: Сформировать html-документ, содержащий ссылки на элементы справочника номенклатура, по клику требуется открывать форму соответствующего элемента. Создаем новый отчет, его форму, на форме размещаем элемент управления ПолеHTMLДокумента.

Текст модуля формы:
Код 1C v 8.х
  Процедура ДобавитьТекстHTML(ТекстHTML, Элемент);
    // Ссылку будем формировать хитро:
    // Предполагаем что символ "-" не входит в имена объектов метаданных,
    // учавствующих в формировании html
    // Тогда ссылка будет иметь следующий вид:
    // Номенклатура-d341d377-b3b1-11dc-a100-0011d85708ff
    // Передавать нашу ссылку будем через атрибут id
    СсылкаНаЭлемент = Элемент.Метаданные().Имя+"-"
    +Элемент.Ссылка.УникальныйИдентификатор();
    ТекстHTML.ДобавитьСтроку("<A id=""" + СсылкаНаЭлемент + """ href= """
    + Элемент + """ >"+Элемент+"</A><BR>");
КонецПроцедуры

Процедура ДействияФормыСформировать(Кнопка)
    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |    Номенклатура.Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура");
    ТекстHTML = Новый ТекстовыйДокумент;
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        ДобавитьТекстHTML(ТекстHTML, Выборка.Ссылка);
    КонецЦикла;
ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(ТекстHTML.ПолучитьТекст());
КонецПроцедуры

Ну вот html мы сформировали, теперь чтобы ссылки “ожили” надо написать обработчик события OnClick элемента управления ПолеHTMLДокумента.
Код 1C v 8.х
  // Функция получает элемент - <A> по данному элементу
// Производит поиск элемента <A> среди родительских элементов данного
//
// Параметры:
// Элемент - COMОбъект, элемент HTML документа,
// по которому нужно найти ссылку
//
// Возвращаемое значение:
// COMОбъект - если ссылка обнаружена, иначе - Неопределено

Функция НайтиСсылку(Элемент)
    Врем = Элемент;
    Пока Врем <> Неопределено Цикл
        Если НРег(Врем.tagName) = "a" Тогда
            Возврат Врем;
        КонецЕсли;
        Врем = Врем.parentElement;
    КонецЦикла;
    Возврат Неопределено;
КонецФункции    // НайтиСсылку(Элемент)

Процедура ПолеHTMLДокументаonclick(Элемент, pEvtObj)
    htmlElement = НайтиСсылку(pEvtObj.srcElement);
    // Анализируем если произошло нажание не ссылку
    Если htmlElement <> Неопределено Тогда
        // Если у ссылки есть идентификатор
        Если СокрЛП(htmlElement.id) <> "" Тогда
            // Получаем адрес ссылки из атрибута id
            СсылкаНаЭлемент = htmlElement.id;
            Разделитель = Найти(СсылкаНаЭлемент,"-");
            Если Разделитель > 0 Тогда
                // Получаем тип элемента
                ТипЭлемента = Лев(СсылкаНаЭлемент,Разделитель-1);
                // Получаем УникальныйИдентификатор
                ГУИД = Сред(СсылкаНаЭлемент,Разделитель+1);
                Справочники[ТипЭлемента].ПолучитьСсылку(
             Новый УникальныйИдентификатор(ГУИД)).ПолучитьФорму().Открыть();
            КонецЕсли;
            // Не отработали нажатие
            pEvtObj.returnValue = Ложь;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


Всё можно пробовать!

Заключение
Обратите внимание что ссылку я формировал следующим образом:
<ИмяОбъектаМетаданных>-<УникальныйИдентификатор> это сделано для того, чтобы в обработчике onclick можно было определить к какому объекту метаданных относится данный УникальныйИдентификатор, потому что имея ТОЛЬКО УникальныйИдентификатор невозможно определить к какому объекту метаданных он относиться. Точнее возможно, но уж слишком долго и неудобно – путем перебора всех метаданных в цикле, для каждого объекта метаданных выполнять попытку <ОбъектМетаданных>.ПолучитьСсылку(Новый УникальныйИдентификатор(НашУникальныйИдентификатор))
Хотя в нашем примере только один справочник, и указывать его вид было необязательно, и так понятно что это УникальныйИдентификатор элемента справочника Номенклатура, но вдруг Вам потребуется работать с несколькими справочниками, вот тут то мой способ задания ссылки Вам и пригодится. Скачивать файлы может только зарегистрированный пользователь!

P.S. Платформа 8.2 имеет встроенный механизм работы со ссылками на объекты БД и данная задача наверняка упростится, но это уже другая тема.
kserg2012,
13.10.22, 13:42 Обмін документами через COMСоединение
chernomoretc_cn @ Сегодня, 14:23 * ,
Для "дякую" там, є кнопочка спеціальна
chernomoretc_cn,
13.10.22, 12:33 Обмін документами через COMСоединение
ось у мене такий приклад:

Попытка 
    v8=Коннектор.Connect("Srvr="""+СокрЛП(ИмяСервера)+""";Ref="""+СокрЛП(ИмяБазы)+""";Usr="""+СокрЛП(Логин)+""";Pwd = """ + СокрЛП(Пасворд) + """;");
Исключение
    Предупреждение("База Данных не открыта!!!");
    сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;    
    
НовыйДокумент = v8.Документы.МойДокумент.СоздатьДокумент();
НовыйДокумент.Записать(v8.РежимЗаписиДокумента.Проведение);
chernomoretc_cn,
11.10.22, 9:04 Таблица значений не сохраняет ссылку на документ
Вот у меня есть такой пример:

Док=СоздатьОбъект("Документ.Перемещение");
тз.Документ = Док.ТекущийДокумент(); // это будет ссылка на документ.


дайте больше информации
kostya77,
23.09.22, 15:44 Не работает выборка документов
4andriy @ Сегодня, 14:52 * ,
исходя из ошибок, то получается. Что у вас в расходной накладной нет реквизита "СуммаБезНДС" и далее по тексту.
4andriy,
23.09.22, 15:10 запуск 1с на windows xp и 7 паралельно
4andriy @ Сегодня, 15:33 * ,
Для того чтобы исправить данную ошибку в 1С 7.7, достаточно поместить файл без содержимого с названием «OrdNoChk. prm» в папку BIN с установленной программой. Например, если 1С расположена по адресу «C:\Program Files (x86)\1Cv77», то необходимо создать файл в папке «C:\Program Files (x86)\1Cv77\BIN».

Мне помогло, когда то такое
4andriy,

6 страниц V  < 1 2 3 4 > » 
RSS Текстовая версия Сейчас: 23.04.24, 18:38
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!